当前位置: 代码迷 >> Android >> Android 截屏并写下SD卡中
  详细解决方案

Android 截屏并写下SD卡中

热度:29   发布时间:2016-05-01 14:42:39.0
Android 截屏并写入SD卡中

-----------截屏方法

private Bitmap shot() {  	View views = getWindow().getDecorView();	views.buildDrawingCache();	// 获取状态栏高度	Rect frames = new Rect();	views.getWindowVisibleDisplayFrame(frames);	int statusBarHeights = frames.top;	Display display = getWindowManager().getDefaultDisplay();	int widths = display.getWidth();	int heights = display.getHeight();	//第一种方式			views.layout(0, statusBarHeights,widths, heights - statusBarHeights);	views.setDrawingCacheEnabled(true);//允许当前窗口保存缓存信息 ,两种方式都需要加上  	Bitmap bmp = Bitmap.createBitmap(views.getDrawingCache());	//第二种方式			// 1、source 位图  2、X x坐标的第一个像素  3、Y y坐标的第一个像素  4、宽度的像素在每一行  5、高度的行数	//Bitmap bmp = Bitmap.createBitmap(views.getDrawingCache(), 0, statusBarHeights,widths, heights - statusBarHeights);	return bmp;  }


------------保存到SD卡方法

			try {				String status = Environment.getExternalStorageState();				// 判斷SD卡是否存在				if (status.equals(Environment.MEDIA_MOUNTED)) {					File destDir = new File("文件夹名");										if (!destDir.exists()) {						// 创建文件夾						destDir.mkdirs();					}					File file = new File("图片名");					// 判断文件夾是否存在					if (file.exists()) {						String pic_path ="文件夹名" +"图片名"+".png";						FileOutputStream out = new FileOutputStream(pic_path);						shot().compress(Bitmap.CompressFormat.PNG,100, out);						out.flush();						out.close();					}				}			} catch (FileNotFoundException e) {				e.printStackTrace();			} catch (IOException e) {				e.printStackTrace();			}


 

--------把Bitmap转为Drawable 放进imageView中

		//Bitmap-->Drawable                  BitmapDrawable bd=new BitmapDrawable(shot());                  imageView.setBackgroundDrawable(bd);                  imageView.setImageBitmap(shot()); 


 

 

 

 

  相关解决方案