无法将图像从一个图像更改为另一个图像

时间:2014-08-20 13:42:31

标签: java android android-listview imageview

我的活动中有一个明星形象。现在,当用户点击该星形图像时,该图像应更改为 ON星形图像,与最喜欢的星形图像相同。为此,我使用以下代码:

ImageView star=(ImageView)findViewById(R.id.favorite);
 star.setOnTouchListener(new OnTouchListener() 
        {
            @Override
            public boolean onTouch(View v, MotionEvent event) 
            {
                if(event.getAction()==MotionEvent.ACTION_DOWN)
                {
                    star.setImageResource(android.R.drawable.star_big_on);
                }
                return false;
            }
        }); 

但我无法改变那张照片。请建议我。

3 个答案:

答案 0 :(得分:1)

使用OnClickListener而不是OnTouchListener。

ImageView star=(ImageView)findViewById(R.id.favorite);
star.setOnClickListener(new OnClickListener() 
    {
        @Override
        public void onClick(View v) 
        {
            star.setImageResource(android.R.drawable.star_big_on);

        }
    }); 

您的代码应该是这样的。您还需要使用XML(android:clickable =" true")或代码(star.setClickable(true);)中的ImageView可点击。

相反,您可以使用ImageButton并将图像设置为ImageButton的背景。这样您就不必担心将视图设置为可点击,因为它本身就是可点击的。

答案 1 :(得分:0)

要更改图像,您可以使用以下代码:

star.setOnClickListener(new OnClickListener(){

        @Override
        public void onClick(View v) {
            star.setImageResource(android.R.drawable.star_big_on);
        }
    });

答案 2 :(得分:0)

你可以使用selctor xml。在res / drawable下创建xml,然后创建selector_star.xml,你在xml中的代码应该是这样的:

<?xml version="1.0" encoding="utf-8"?>

<selector xmlns:android="http://schemas.android.com/apk/res/android">

<item android:drawable="@drawable/star_big_on" android:state_pressed="true" android:state_selected="true"></item>
<item android:drawable="@drawable/star_big_off"></item>

</selector>

在你的Image视图xml中,它应该是这样的:

<ImageView
 android:id="@+id/star"
 android:background="@drawable/star_selector"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"/>