首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >按下时更改图像视图的源图像

按下时更改图像视图的源图像
EN

Stack Overflow用户
提问于 2010-11-16 18:29:31
回答 13查看 88.3K关注 0票数 27

我有一个滚动视图,里面有很多图像按钮。我想在按下图像按钮时更改它的图像。问题是,我希望图像一直保留到按下另一个图像按钮。这就是我不能使用选择器的原因。实现his的最佳实践是什么?

诚挚的问候

EN

回答 13

Stack Overflow用户

发布于 2010-11-16 18:34:07

你想这么做。

代码语言:javascript
复制
ImageButton Demo_button = (ImageButton)findViewById(R.id.firstimage);

// when you click this demo button
Demo_button.setOnClickListener(new OnClickListener() {
    public void onClick(View v) {
        Demo_button.setImageResource(R.drawable.secondimage);
    }
}

尝尝这个。(将setset更新为set)

票数 35
EN

Stack Overflow用户

发布于 2014-03-18 18:21:35

更好的解决方案是,使用以下xml作为图像的来源:

代码语言:javascript
复制
   <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android" >
        <item android:state_activated="true">
            <bitmap android:src="@drawable/image_selected"/>
        </item>
        <item>
            <bitmap android:src="@drawable/image_not_selected"/>
        </item>
    </selector>

    @Override
     public void onClick(View v) {
        v.setActivated(!v.isActivated());
     }
票数 24
EN

Stack Overflow用户

发布于 2017-07-21 21:58:02

实现这一目标的最短方法是只使用XML (不使用Java代码):

在两个图像旁边将以下内容另存为drawable/image_pressable.xml

代码语言:javascript
复制
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/image_pressed" android:state_pressed="true" />
    <item android:drawable="@drawable/image_regular" />
</selector>

然后将其引用为:

代码语言:javascript
复制
<ImageView android:src="@drawable/image_pressable" />

提示:

使用state_pressed而不是state_activated可以在用手指按下图像时更改图像。如果你想动态改变ImageView的状态,state_activated可能会很有用,但如果你只是想让它在按下时表现不同,而不涉及任何代码,那就不是这样了。这正是在这个主题的问题中被问到的问题。

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

https://stackoverflow.com/questions/4193167

复制
相关文章

相似问题

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