如何使用带有XML的文本缩放按钮内的drawable

时间:2012-12-27 06:05:23

标签: android android-layout

我已经设置了一些按钮,左边是图标,右边是文字。一切都随着屏幕尺寸(手机平板电脑)而扩大,但问题在于按钮只是文字。我希望按钮成为整行,以便具有焦点的按钮正确点亮(我使用遥控器)。

此代码有效,除了按钮只是文本

        <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"/>

1 个答案:

答案 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>
相关问题