我想把当前被选中的图片的背景色设置单独的一个颜色如黄色,其他没有被选中的图片还是默认背景色,这样容易区分哪个图当前被选中的。
但我的实现总是有问题,老是两张图片同时显示黄色,包括当前被选中的和前一个被选中的。
不知道该怎么解决,谁能指点一下呢?
多谢!

解决方案 »

  1.   

    在XML文件中写一个 <selector> 吧,这个跟那个Button中被选中的应该是一样的吧
      

  2.   

    在XML文件中写一个 <selector> 。
    其中定义当你图片无操作的显示、获得焦点时候的显示效果、被点击的时候显示的效果等等。
    如果要实现你说说的,只需要定义图片获取焦点和失去焦点的时候显示的效果即可。
    给个例子:<?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:state_focused="true" android:state_pressed="false"
            android:drawable="@drawable/button_bkg_selected" />
        <item android:state_pressed="true" android:drawable="@drawable/button_bkg_clicked" />
        <item android:drawable="@drawable/button_bk" />
    </selector>
    应用的时候和你引用图片的时候是一样的。
      

  3.   

    多谢。
    这样可以实现点击图片时被点击图片的背景变成button_bkg_clicked,但直接按键盘左右导航键图片背景一直是button_bk。不知道什么原因。另外还有一个问题。
    在主activity中,除了一个gallery外,还有一个imageSwitcher用于现实当前点击或选择的图片。
    点击imageSwitcher中的图片时,打开一个新的activity,全屏显示此图片。
    但是在主activity执行点击,左右键选择等几次操作后,再点击imageSwitcher的图片,迁移到新activity后显示的图片就不是imageSwitcher中显示的图片了。但是debug时,通过intent传递过来的图片id是一致的,但在新的activity中取得的图片却变了。
    代码如下:
    1.主activity中点击imageSwitcher
    imageSwitcher.setOnClickListener(new View.OnClickListener() {
        
         public void onClick(View view) {
         Intent intent = new Intent(Test_Gallery.this, DisplayImage.class);
         Bundle bundle = new Bundle();// 该类用作携带数据
         bundle.putInt("imageId", imageId);
         Log.i(TAG, "onClick, imageId = " + imageId);
         intent.putExtras(bundle);// 附带上额外的数据
         startActivity(intent);
         }
         });2.新activity中取出imageId
    Bundle bundle = this.getIntent().getExtras();
    Integer imageId = bundle.getInt("imageId");
    Log.i(TAG, "onCreate, imageId = " + imageId);
      

  4.   

    http://www.cnblogs.com/noTice520/archive/2011/03/09/1978408.html
      

  5.   

    我也想知道,gallery系统自带的背景就那一个吗?如何改背景