首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android:无法使StateList绘图工作

Android:无法使StateList绘图工作
EN

Stack Overflow用户
提问于 2016-06-30 13:30:00
回答 3查看 52关注 0票数 1

我正在努力使状态列表可绘制,以便用作图像按钮的背景。

我在使用这些PNG文件

我的状态列表选择器是这样的:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/play_button_pressed" android:state_pressed="true" />
    <item android:drawable="@drawable/play_button_pressed" android:state_focused="true" />
    <item android:drawable="@drawable/play_button_normal" />
</selector>

图像按钮是这样的:

代码语言:javascript
复制
<ImageButton
            android:id="@+id/play_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:background="@drawable/play_button_bg"
            />

但按钮出现时,它有大的图像和背景,当点击它什么都不会发生。这里有什么问题吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-06-30 14:36:16

好的,我成功地使用了一个包含层列表的状态列表选择器来解析它,如下所示:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true">
        <layer-list>
            <item>
                <bitmap android:src="@drawable/play_button_pressed" android:gravity="center" />
            </item>
        </layer-list>
    </item>
    <item android:state_focused="true">
        <layer-list>
            <item>
                <bitmap android:src="@drawable/play_button_pressed" android:gravity="center" />
            </item>
        </layer-list>
    </item>
    <item android:drawable="@drawable/play_button_normal" />
</selector>

诀窍就在位图上:android:gravity="center"

票数 0
EN

Stack Overflow用户

发布于 2016-06-30 14:29:50

改为:

代码语言:javascript
复制
<ImageButton
        android:id="@+id/play_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:scaleType="center"
        android:src="@drawable/play_button_bg"
        android:background="@null"/>

默认情况下,背景伸展以适应视图。所以这两个按钮被改变了,最终的外观是完全一样的。

使用作为源,并将它们作为“中心而不缩放”,应该显示两个按钮正在变化(尽管最终的效果可能不是您所期望的那样)。

通常情况下,如果所有的绘图都具有相同的大小,状态图会减少头痛。

票数 1
EN

Stack Overflow用户

发布于 2016-06-30 13:56:09

代码没有问题。因为这两个图像是相同的,所以当我们单击“图像”按钮时,看起来没有什么变化。将一个图像更改为另一个png,比如暂停按钮图像&尝试。还可以使用ImageView代替ImageButton。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38124620

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档