我已经设置了一些按钮,左侧有图标,右侧有文本。一切都随屏幕尺寸(电话平板电脑)缩放,但问题在于按钮只是文本。我希望按钮是整行,以便具有焦点的按钮正确点亮(我使用遥控器)。
除了按钮只是文本外,此代码有效
<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>
这只是线性布局中的一部分,因此连续有几个按钮。
以下是我想要开始的工作,但是我不知道如何缩放可绘制对象。我知道有一个scaleDrawable命令,但是除了有人抱怨它不起作用并获得在Java中处理它的解决方案外,我找不到关于如何使其在XML中起作用的任何文章。
<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"/>
最佳答案
这就是我想出的方法。整个页面是线性布局,按钮在页面上垂直排列。每个按钮都是垂直的线性布局,由图像和一些文本组成。垂直布局的所有元素都是可单击的,因此单击图像或文本可做相同的事情。这是单个按钮的示例。尺寸@ 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>