Android 如何指定可绘制项目的宽度和高度

Android 如何指定可绘制项目的宽度和高度,android,layout,Android,Layout,您好,是否有提供drawable文件夹中drawable.xml中定义的drawable的宽度和高度的方法 例如: <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@drawable/button_pressed" /> <!-- pre

您好,是否有提供drawable文件夹中drawable.xml中定义的drawable的宽度和高度的方法

例如:

 <selector xmlns:android="http://schemas.android.com/apk/res/android">
     <item android:state_pressed="true"
           android:drawable="@drawable/button_pressed" /> <!-- pressed -->
     <item android:state_focused="true"
           android:drawable="@drawable/button_focused" /> <!-- focused -->
     <item android:drawable="@drawable/button_normal" /> <!-- default -->
 </selector>

我想指定宽度和高度,也许在其中使用“scale”标记,我尝试了,但没有成功。这是我的代码:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/icon_ratingstar">
        <scale android:scaleWidth="20" android:scaleHeight="20" android:drawable="@drawable/icon_ratingstar" />
    </item>
</selector>

您可以在
标签内指定
可绘制的
宽度和
高度:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
 <item android:state_pressed="true"
       android:width="100dp"
       android:height="20dp"
       android:drawable="@drawable/button_pressed" /> <!-- pressed -->
 <item android:state_focused="true"
       android:width="100dp"
       android:height="20dp"
       android:drawable="@drawable/button_focused" /> <!-- focused -->
 <item android:drawable="@drawable/button_normal" /> <!-- default -->


您可以在API级别23及更高版本中使用属性
宽度
高度

<item
    android:width="18dp" android:height="18dp"
    android:drawable="@drawable/icon_ratingstar"/>


对于较低的API级别,我不知道如何直接指定
width
height
。据我所知,最好的做法是缩放可绘制图形。

图层列表将有所帮助:这里根据您的要求更改值

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
    <shape>
        <size
            android:width="20dp"
            android:height="20dp" />

        <solid android:color="@android:color/black" />
    </shape>
</item>
<item
    android:width="20dp"
    android:height="20dp"
    android:drawable="@drawable/slider_knob" />


上述方法实际上不起作用
StateListDrawable
(选择器)实际上没有width和height属性。@Sent1nel。如果
后面有
宽度
高度
,则可以使用(XML)
ShapeDrawable
。即使将形状作为可绘制项的根元素,这似乎也不起作用。我想你没有一个有效的例子吗?老兄,这个答案实际上并没有错。属性
android:width
android:height
存在,但仅在API级别23及更高的版本中存在。您似乎忘记删除答案:)我能看到的唯一可行的属性是使用类似的东西,您不能在item标记中指定宽度和高度,我看不到文档中提到的。@user606669您可以,但只有在API 23之后才支持它。在API 23之前如何使用它?