您的位置:首页 > 其它

Gallery使用 主要记录一些 注意的地方

2016-08-13 15:50 495 查看
xml布局

<!--<Gallery-->

<!--android:layout_below="@id/topBar"-->
<!--android:gravity="center_vertical"-->
<!--android:background="@color/black"-->
<!--android:id="@+id/my_gallery"-->
<!--android:layout_width="match_parent"-->
<!--android:layout_height="match_parent"-->
<!-->-->
<!--</Gallery>-->

oncreate

bitmaps = new ArrayList<Bitmap>();
init();
adapter = new MyGalleryAdapter();
myGallery.setAdapter(adapter);


初始化数据

private void init() {
Intent intent = getIntent();
helpTopicImage = intent.getStringArrayListExtra("picList");

firstPosition = intent.getIntExtra("position", 0);

new Thread() {
@Override
public void run() {
for (String img : helpTopicImage) {
try {
//必须
Bitmap myBitmap = Glide.with(mContext)
.load(img)
.asBitmap() //必须
.centerCrop()
.into(500, 500)
.get();

//                        Message message = new Message();
//                        message.obj = myBitmap;
//                        handler.sendMessage(message);
bitmaps.add(myBitmap);

} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
}
//子线程循环加载完成之后,再调用adapter,或者使用更新
//                adapter.notifyDataSetChanged();//第一种

runOnUiThread(new Runnable() {
@Override
public void run() {
myGallery.setAdapter(adapter);//或者直接在这写setadapter

}
});
}
}.start();
}


点击事件

myGallery.setOnItemClickListener(new AdapterView.OnItemClickListener() {
//            @Override
//            public void onItemClick(AdapterView<?> parent, View view, final int position, long id) {
//                down.setOnClickListener(new View.OnClickListener() {
//                    @Override
//                    public void onClick(View v) {
//                        BitMapFile.saveBitmap2file(bitmaps.get(position), position + ".jpg");
//                    }
//                });
//
//
//            }
//        });
适配器
private class MyGalleryAdapter extends BaseAdapter {
@Override
public int getCount() {
// TODO Auto-generated method stub
return bitmaps.size();

}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
ImageView view = null;
if (convertView != null) {
view = (ImageView) convertView;
} else {
view = new ImageView(mContext);
}

Gallery.LayoutParams params = new Gallery.LayoutParams(Gallery.LayoutParams.MATCH_PARENT, Gallery.LayoutParams.MATCH_PARENT);
view.setLayoutParams(params);

BitmapDrawable bd = new BitmapDrawable(bitmaps.get(position));
bd.setAntiAlias(true);
view.setImageDrawable(bd);
tvNumLocation.setText(position+1+"");
tvNumCount.setText(bitmaps.size()+"");
return view;
}

@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return bitmaps.get(position);

}

@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}

}
记得 退出 消除bitmap[/code]
@Override
protected void onDestroy() {
super.onDestroy();
for (Bitmap bitmap : bitmaps) {
if (bitmap != null && bitmap.isRecycled()) {
bitmap.recycle();
}
}
}

[/code]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: