在开发的过程中有时会碰到这样的需求,把一个界面截屏或者把某一个View转化为图片分享出去,类似一些阅读类软件,分享文字时,会弹出一个popwindow,然后把一些文字信息,用户信息等显示在一个view上,然后分享,如下图:
实现过程:1.弹出popwindow
2.显示要分享的View
3.把View转化为图片并保存本地
4.分享出去
主要说一下吧View转化为图片:
1.View转Bitmap:
private Bitmap viewToBitmap(View v) {
int width = v.getWidth();
int height = v.getHeight();
Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
canvas.drawColor(Color.WHITE);
v.draw(canvas);
return bitmap;
}
2.把图片保存到本地:
public String saveImg(View view) {
Bitmap cachebmp = viewToBitmap(view);
try {
String dir=
Environment.getExternalStorageDirectory().getAbsolutePath()+"/share.png";
File f = new File(dir);
if (!f.exists()) {
f.getParentFile().mkdirs();
f.createNewFile();
}
FileOutputStream out = new FileOutputStream(f);
cachebmp.compress(Bitmap.CompressFormat.PNG, 90, out);
out.flush();
out.close();
view.destroyDrawingCache();
return f.getAbsolutePath();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
3.调用系统的分享就可以了。
查看完整项目可点击下载: