package com.bingo.activity;import java.io.File;import java.io.Serializable;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import android.app.Activity;import android.app.ProgressDialog;import android.content.Context;import android.content.Intent;import android.graphics.Bitmap;import android.graphics.Bitmap.Config;import android.graphics.BitmapFactory;import android.graphics.Canvas;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.view.Gravity;import android.view.View;import android.view.View.OnClickListener;import android.view.ViewGroup;import android.view.Window;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.BaseAdapter;import android.widget.Button;import android.widget.GridView;import android.widget.ImageButton;import android.widget.ImageView;import android.widget.Toast;import com.bingo.activity.BingoMore_Comm.Adapter;import com.bingo.util.ImageDispose;import com.bingo.util.ImageMemory;import com.bingo.util.JudgePath;public class BingoPhotoAlbumActivity extends Activity {private GridView photoalbum;private ImageButton back;boolean falg = true;private ImageList adapter;private Button ok;private ProgressDialog dialog = null;JudgePath path = new JudgePath();List<String> list;List<Bitmap> listB = new ArrayList<Bitmap>();List<Map<String,String>>  listtemp =  new ArrayList();private Context context;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// 窗口去掉标题requestWindowFeature(Window.FEATURE_NO_TITLE);//// 窗口设置为全屏//getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,//WindowManager.LayoutParams.FLAG_FULLSCREEN);setContentView(R.layout.photoalbum);context =this;back= (ImageButton) findViewById(R.id.xiangce_back);back.setOnClickListener(new xcback());ok = (Button) findViewById(R.id.xiangceok);ok.setOnClickListener(new xcOk());list = getSD();imageBitmap();photoalbum = (GridView) findViewById(R.id.GridView_photoalbum);photoalbum.setNumColumns(4);photoalbum.setGravity(Gravity.CENTER);photoalbum.setVerticalSpacing(3);photoalbum.setHorizontalSpacing(1);photoalbum.setOnItemClickListener( new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view,int position, long id) {if (listtemp.size()>0) {falg= true;for (int i = 0; i < listtemp.size(); i++) {if (Integer.valueOf((listtemp.get(i).get("id")))==position) {listtemp.remove(i);Bitmap src = listB.get(position);((ImageView)view).setImageBitmap(src);falg = false;break;}}if(falg){Map<String, String> map = new HashMap<String, String>();map.put("id", String.valueOf(position));listtemp.add(map);Bitmap newb =BitmapFactory.decodeResource(getResources(),R.drawable.selected );Bitmap src = adapter.getcheckedImageIDPostion(position);Bitmap bi = Bitmap.createBitmap( view.getWidth(), view.getHeight(), Config.ARGB_8888 );Canvas cv = new Canvas( bi );  cv.drawBitmap( src, 2, 0, null );cv.drawBitmap( newb, view.getWidth() - newb.getWidth() -5, view.getHeight() - newb.getHeight() -5, null );//在src的右下角画入水印    cv.save( Canvas.ALL_SAVE_FLAG );//保存    cv.restore();//存储 ((ImageView)view).setImageBitmap(bi);falg = true;}}else {Map<String, String> map = new HashMap<String, String>();map.put("id", String.valueOf(position));listtemp.add(map);Bitmap newb =BitmapFactory.decodeResource(getResources(),R.drawable.selected );Bitmap src = adapter.getcheckedImageIDPostion(position);Bitmap bi = Bitmap.createBitmap( view.getWidth(), view.getHeight(), Config.ARGB_8888 );Canvas cv = new Canvas( bi );  cv.drawBitmap( src, 2, 0, null );cv.drawBitmap( newb, view.getWidth() - newb.getWidth() -5, view.getHeight() - newb.getHeight() -5, null );//在src的右下角画入水印    cv.save( Canvas.ALL_SAVE_FLAG );//保存    cv.restore();//存储 ((ImageView)view).setImageBitmap(bi);}}});}class xcback implements OnClickListener{@Overridepublic void onClick(View v) {finish();}}class xcOk implements OnClickListener{@Overridepublic void onClick(View v) {List<String> list01 = new ArrayList<String>();if(listtemp.size()>0){for (int i = 0; i < listtemp.size(); i++) {//list01.add(adapter.getcheckedImageIDPostion(Integer.valueOf(listtemp.get(i).get("id"))));list01.add(list.get(Integer.valueOf(listtemp.get(i).get("id"))));}}Intent intent = new Intent(BingoPhotoAlbumActivity.this,PhotoShake.class);if(list01.size()>0){intent.putExtra("listBitmap", (Serializable)list01);startActivity(intent);}else{Toast.makeText(BingoPhotoAlbumActivity.this, "请选择图片", Toast.LENGTH_SHORT).show();}}}public class ImageList extends BaseAdapter {private Context context;public ImageList(Context a) {this.context = a;}@Overridepublic int getCount() {return listB.size();}@Overridepublic Object getItem(int position) {return listB.get(position);}@Overridepublic long getItemId(int position) {return position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {ImageView iv = new ImageView(context);iv.setImageBitmap( listB.get(position));if(listtemp.size()>0){for (int i = 0; i < listtemp.size(); i++) {if(Integer.valueOf((listtemp.get(i).get("id")))==position){Bitmap newb =BitmapFactory.decodeResource(getResources(),R.drawable.selected );Bitmap src = adapter.getcheckedImageIDPostion(position);Bitmap bi = Bitmap.createBitmap( listB.get(position).getWidth(), listB.get(position).getHeight(), Config.ARGB_8888 );Canvas cv = new Canvas( bi );  cv.drawBitmap( src, 2, 0, null );cv.drawBitmap( newb, listB.get(position).getWidth() - newb.getWidth() -5, listB.get(position).getHeight() - newb.getHeight() -5, null );//在src的右下角画入水印    cv.save( Canvas.ALL_SAVE_FLAG );//保存    cv.restore();//存储 ((ImageView)iv).setImageBitmap(bi);}}}iv.setAdjustViewBounds(true);return iv;}/* 自定义获取对应位置的图片ID */public Bitmap getcheckedImageIDPostion(int i) {return listB.get(i);}}private void imageBitmap(){dialog = ProgressDialog.show(BingoPhotoAlbumActivity.this, "","加载中,请稍等···");new Thread() {@Overridepublic void run() {//List list01 = new ArrayList();Bitmap bitmap;for (int i = 0; i < list.size(); i++) {BitmapFactory.Options opts = new BitmapFactory.Options();opts.inJustDecodeBounds = true;BitmapFactory.decodeFile(list.get(i), opts);opts.inSampleSize = new ImageMemory().computeSampleSize(opts, -1, 110 * 110);opts.inJustDecodeBounds = false;Bitmap bmp = BitmapFactory.decodeFile(list.get(i), opts);ImageDispose iDispose= new ImageDispose();bitmap = iDispose.zoomBitmap(bmp, 110, 110);listB.add(bitmap);}Message message = new Message();message.what = 1;handler0.sendMessage(message);}}.start();}private Handler handler0 = new Handler() {public void handleMessage(android.os.Message msg) {switch (msg.what) {case 1:adapter = new ImageList(context);photoalbum.setAdapter(adapter);dialog.dismiss();break;case -1:break;}};};/** *  * @return */private List<String> getSD() {/* 设定目前所在路径 */List<String> it = new ArrayList<String>();File f = new File(new JudgePath().getPath()+"/dcim/Camera");//File f = new File(path.getPath() );if (f.listFiles() != null) {File[] files = f.listFiles();/* 将所有文件存入ArrayList中 */for (int i = 0; i < files.length; i++) {File file = files[i];if (getImageFile(file.getPath()))it.add(file.getPath());}}return it;}private boolean getImageFile(String fName) {boolean re;/* 取得扩展名 */String end = fName.substring(fName.lastIndexOf(".") + 1, fName.length()).toLowerCase();/* 按扩展名的类型决定MimeType */if (end.equals("jpg") || end.equals("gif") || end.equals("png")|| end.equals("jpeg") || end.equals("bmp")) {re = true;} else {re = false;}return re;}}

更多相关文章

  1. android实现自定义相机以及图片的水印
  2. Android 为图片添加文字水印
  3. ArcGIS Runtime SDK for Android 100.x系列中如何去除水印和ESRI
  4. Android 添加图片水印(图片+文字)
  5. android 暗水印
  6. Android为图片添加水印文字
  7. Android:缩小图片尺寸,并添加水印
  8. Android 将 android view 的位置设为右下角的解决方法
  9. 如何将android view的位置设为右下角

随机推荐

  1. MySQL kill指令使用指南
  2. MySQL 索引的一些细节分享
  3. MySQL系列之redo log、undo log和binlog
  4. SQLServer注释快捷键操作
  5. 关于MyBatis连接MySql8.0版本的配置问题
  6. 浅谈postgresql数据库varchar、char、tex
  7. MySQL如何优雅的删除大表实例详解
  8. 详解 MySQL 执行计划
  9. 监控MySQL主从状态的shell脚本
  10. Mysql实现定时清空一张表的旧数据并保留