android 通過uri截取指定大小的圖片顯示在imageview上

jopen 11年前發布 | 54K 次閱讀 Android Android開發 移動開發

在gridview的adapter中設置

public class GridViewAdapter extends BaseAdapter {

    protected List<Map<String, Object>> mlist;
    protected Context mContext;
    protected LayoutInflater mInflater = null;

    public GridViewAdapter(Context context, List<Map<String, Object>> list) {
        mlist = list;
        mContext = context;
        mInflater = LayoutInflater.from(context);
    }

    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return mlist.size();
    }

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

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

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub
        ViewHolder viewHolder = null;
        if (null == convertView) {
            viewHolder = new ViewHolder();
            convertView = mInflater.inflate(R.layout.item_gridview, null);
            viewHolder.imageButton = (ImageButton) convertView
                    .findViewById(R.id.imageButton1);
            viewHolder.imageView = (ImageView) convertView
                    .findViewById(R.id.imageView1);
            convertView.setTag(viewHolder);
        } else {
            viewHolder = (ViewHolder) convertView.getTag();
        }

        if (!mlist.get(position).get("drawable").equals("") && mlist.size() < 6) {
            viewHolder.imageView
                    .setImageResource(R.drawable.app_panel_add_icon_normal);
            viewHolder.imageButton.setVisibility(View.GONE);

        } else { //自動裁剪出制定大小的圖片顯示在imageview上
            ContentResolver contentProvider = mContext.getContentResolver();
            Uri uri01 = (Uri)mlist.get(position).get("uri");
            Bitmap mBitmap = null;
            try {
                Bitmap bmp = BitmapFactory.decodeStream(contentProvider.openInputStream(uri01));
                mBitmap = Bitmap.createScaledBitmap(bmp, 100, 100, true);
            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }           

            viewHolder.imageView.setImageBitmap(mBitmap);
//          viewHolder.imageView.setImageURI((Uri) (mlist.get(position)
//                  .get("uri")));
            viewHolder.imageButton.setVisibility(View.VISIBLE);


        }
        final int i = position;
        viewHolder.imageButton.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                if (mlist.size() == 5
                        && mlist.get(4).get("drawable").equals("")) {
                    Map<String, Object> map = new HashMap<String, Object>();
                    map.put("drawable", R.drawable.ic_launcher);
                    mlist.add(map);
                }
                mlist.remove(i);
                GridViewAdapter.this.notifyDataSetChanged();
            }
        });

        return convertView;
    }

    static class ViewHolder {
        ImageView imageView;
        ImageButton imageButton;
    }

}

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!