qq_30949437 2015-10-08 10:21 采纳率: 0%
浏览 1625

Android中GridView如何改变所有图片的中状态

我做的GridView中每个图片中都有一个按键,默认是显示的.当网上下载缓存到本地时.如果缓存没有清除的话按键就一直隐藏.
现在的问题是当我退出时,已经隐藏好的按键,又显示出来了.只有在点击时才会隐藏,我如何做才能把缓存好图片的按键一直隐藏,
这是我在Adapter中写的代码.请看看有什么要改的地方
class MyAdapter extends BaseAdapter {
int clickTemp = -1;

    public void setSeclection(int position) {
        clickTemp = position;
        }
    @Override
    public int getCount() {
        return urlList.size();
    }

    @Override
    public Object getItem(int position) {
        return null;
    }

    @Override
    public long getItemId(int position) {
        return 0;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        if(convertView==null){
            view=View.inflate(ReplaceBackgroundActivity.this, R.layout.background_item, null);
            convertView=view;
        }
        ImageView iv_background = (ImageView) convertView.findViewById(R.id.iv_background);
        background_dot=(ImageView) convertView.findViewById(R.id.background_dot);
        File dir2=new File(Environment.getExternalStorageDirectory()+IMAGE_CACHE_PATH);
        if(dir2.exists()){
            background_dot.setVisibility(View.GONE);
        }else{

        }
        if (position == 0) {
            iv_background.setScaleType(ScaleType.FIT_CENTER);
            iv_background.setPadding(100, 25, 100, 30);
            iv_background.setImageBitmap(bitmapList.get(0));
            background_dot.setVisibility(View.GONE);
            // iv_background.setPadding(left, top, right, bottom);
        }else if(position==1){
            iv_background.setImageBitmap(bitmapList.get(position));
            iv_background.setScaleType(ScaleType.FIT_XY);
            iv_background.setPadding(1, 1, 1, 1);
            background_dot.setVisibility(View.GONE);
        } 
        else {
            String url = urlList.get(position);
            if(url.indexOf("http")!=-1){
                mImageLoader.displayImage(url,iv_background,options);               

                iv_background.setScaleType(ScaleType.FIT_XY);
                iv_background.setPadding(1, 1, 1, 1);
            }else{

                Bitmap bm = BitmapFactory.decodeFile(url);
                iv_background.setImageBitmap(bm);
                iv_background.setScaleType(ScaleType.FIT_XY);
                iv_background.setPadding(1, 1, 1, 1);
                                background_dot.setVisibility(View.GONE);
            }
        }
        if (clickTemp == position) {
            convertView.setBackgroundResource(R.drawable.gridview_shape);
            background_dot.setVisibility(View.GONE);
        } else {
            convertView.setBackgroundResource(R.drawable.gridview_shape2);
            }
        return convertView;
    }

}
  • 写回答

2条回答 默认 最新

  • bdmh 移动开发领域优质创作者 2015-10-08 11:51
    关注

    自己跟踪两个问题,getview是触发了,再有第一次触发时,你的缓存列表是否准备好了

    评论

报告相同问题?

悬赏问题

  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 请问这个是什么意思?
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。