loveztbdcz
打杂家的
采纳率0%
2013-11-29 06:54 浏览 15.0k

android开发中,想实现点击ImageButton切换它的图片。

开发时使用adapter把数据更新到listview。每一个Item都有一个按钮,onClicka时, v.findViewById(R.id.button).setBackgroundDrawable( getResources().getDrawable(R.drawable.picB)); 。
关于切换图片遇到几个问题,望各位大神指点一二。
1.布置XML时,设置android:src="@drawable/picA",这种做法点击没有进行图片切换。
2.布置XML时,不设定背景图片,设置adapter时,holder.botton.setBackgroundDrawable(getResources().getDrawable(R.drawable.picA));这种做法,点击图片切换了。但当讲手机画面往下拉直至这个这个切换的按钮看不见,再出现时,图片有变回了原来的图片。
3.布置XML时,不设定背景图片,设置adapter时,((ImageButton)v).setImageDrawable(getResources().getDrawable(R.drawable.picA));
这种做法,点击图片切换了。但当讲手机画面往下拉直至这个这个切换的按钮看不见,再出现时,变了图片的按钮不是我点击的那个按钮,数目也不对。按钮监听如下:
holder.copyBotton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

                v.findViewById(R.id.copybutton)
                        .setBackgroundColor(00000000);
                v.findViewById(R.id.copybutton).setBackgroundDrawable(
                        getResources().getDrawable(R.drawable.redheart));

            }
        }); 
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

3条回答 默认 最新

  • franzhong franzhong 2013-11-29 07:30

    1:xml中设置src只是设置载入时默认资源,并没扯到切换
    2和3都是没加缓存造成的,adapter还有图片,你不加adapter后面会很卡,也会出现这些个别元素"时有时无"的异常情况
    getView中样例代码:

    ViewHolder holder;
            if(arg1==null){
                holder = new ViewHolder();
                arg1   = layoutinflater.inflate(R.layout.list_item_1, null);
                holder.name     = (TextView) arg1.findViewById(R.id.video_name1);
                holder.icon     = (ImageView) arg1.findViewById(R.id.video_image);
                arg1.setTag(holder);
            }else {
                holder = (ViewHolder) arg1.getTag();
            }
    

    //ViewHolder

    private class ViewHolder {
        TextView name;
        ImageView icon;
        }
    

    附ImageButton在非ListView/GridView中使用说明
    在xml中给ImageButton设置src属性android:src="@drawable/pl"
    在myImageView.setOnClickListener中添加

    myImageView.setImageDrawable(getResources().gerDrawable(R.drawable.pl2);
    

    既可实现切换按纽,还有另一种方法:布局好按纽样式,方便以后多次调用

    点赞 1 评论 复制链接分享
  • aduovip 109905418 2013-11-30 04:02

    要从列表的数据的变动着手,当点击按钮,背景图片发生变化时,把这一条目存储在一个Map对象,缓存起来,并且adapter要 notifyDataSetChanged(); 这样就记录下了已点击的按钮。

    点赞 1 评论 复制链接分享
  • zxl881209 随风漂泊_ 2014-07-28 15:43
    点赞 评论 复制链接分享

相关推荐