我已经设置了一些按钮,左边是图标,右边是文字。一切都随着屏幕尺寸(手机平板电脑)而扩大,但问题在于按钮只是文字。我希望按钮成为整行,以便具有焦点的按钮正确点亮(我使用遥控器)。
此代码有效,除了按钮只是文本
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="onSetTargets">
<ImageView
android:id="@+id/imageView1"
android:layout_width="@dimen/menu"
android:layout_height="@dimen/menu"
android:layout_marginTop="@dimen/padding_small"
android:src="@raw/target"
android:onClick="onSetTargets"/>
<Button
android:id="@+id/set_Targets"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/buttonselector"
android:ellipsize="none"
android:gravity="left"
android:onClick="onSetTargets"
android:singleLine="true"
android:text=" Targets "
android:textColor="@android:color/white"
android:textSize="@dimen/menu" />
</LinearLayout>
这只是线性布局中的一个部分,然后连续有几个按钮。
以下是我想要的工作,但我无法弄清楚如何缩放drawable。我知道有一个scaleDrawable命令,但我找不到任何关于如何使它在XML中工作的帖子,除了人们抱怨它不起作用并获得在java中处理它的解决方案。
<Button
android:id="@+id/set_start_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/buttonselector"
android:gravity="left"
android:onClick="onStartTime"
android:text=" Timer"
android:textColor="@android:color/white"
android:textSize="@dimen/menu"
android:drawableLeft="@raw/hourglass"/>
答案 0 :(得分:2)
这就是我提出的有效方法。整个页面是线性布局,按钮垂直排列在页面上。每个按钮都是垂直线性布局,由图像和一些文本组成。垂直布局的所有元素都是可点击的,因此单击图像或文本会做同样的事情。以下是单个按钮的示例。尺寸@ dimen / menu是针对手机和平板电脑尺寸定义的,图像将按比例缩放以符合规格。
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="onSetTargets">
<ImageView
android:id="@+id/imageView1"
android:layout_width="@dimen/menu"
android:layout_height="@dimen/menu"
android:layout_marginTop="@dimen/padding_small"
android:src="@raw/target"
android:onClick="onSetTargets"/>
<Button
android:id="@+id/set_Targets"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/buttonselector"
android:ellipsize="none"
android:gravity="left"
android:onClick="onSetTargets"
android:singleLine="true"
android:text=" Targets "
android:textColor="@android:color/white"
android:textSize="@dimen/menu" />
</LinearLayout>