[Android学习笔记二]View转化Bitmap
在View类中的onDraw方法的参数Canvas是View绘制的背景,要将View转换为Bitmap实际上就是让Canvas上的绘制操作绘制到Bitmap上。

西吉网站制作公司哪家好,找创新互联建站!从网页设计、网站建设、微信开发、APP开发、成都响应式网站建设公司等网站项目制作,到程序开发,运营维护。创新互联建站于2013年成立到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联建站。
View转化为Bitmap也称为截屏,让用户看到的View视图转化为图片的过程。
关于View转化Bitmap涉及到的View类中的方法有:
protected void onDraw(Canvas canvas) public void buildDrawingCache() public void destroyDrawingCache() public Bitmap getDrawingCache() public void setDrawingCacheEnabled(boolean enabled)
下面是常见的几个View截屏的示例:
1.View转Bitmap
public final Bitmap screenShot(View view) {
if (null == view) {
throw new IllegalArgumentException("parameter can't be null.");
}
view.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight());
view.setDrawingCacheEnabled(true);
view.buildDrawingCache();
Bitmap bitmap = view.getDrawingCache();
return bitmap;
}
2. Activity转Bitmap,不带状态栏
public final Bitmap screenShot(Activity activity) {
if (null == activity) {
throw new IllegalArgumentException("parameter can't be null.");
}
View view = activity.getWindow().getDecorView();
view.setDrawingCacheEnabled(true);
view.buildDrawingCache();
Bitmap b1 = view.getDrawingCache();
Rect frame = new Rect();
view.getWindowVisibleDisplayFrame(frame);
int statusBarHeight = frame.top;
Point point = new Point();
activity.getWindowManager().getDefaultDisplay().getSize(point);
int width = point.x;
int height = point.y;
Bitmap b2 = Bitmap.createBitmap(b1, 0, statusBarHeight, width, height - statusBarHeight);
view.destroyDrawingCache();
return b2;
}3. ScrollView转长Bitmap(类似锤子便签的截长图)
public final Bitmap screenShot(ScrollView scrollView) {
if (null == scrollView) {
throw new IllegalArgumentException("parameter can't be null.");
}
int height = 0;
Bitmap bitmap;
for (int i = 0, s = scrollView.getChildCount(); i < s; i++) {
height += scrollView.getChildAt(i).getHeight();
scrollView.getChildAt(i).setBackgroundResource(android.R.drawable.screen_background_light);
}
bitmap = Bitmap.createBitmap(scrollView.getWidth(), height, Bitmap.Config.ARGB_8888);
final Canvas canvas = new Canvas(bitmap);
scrollView.draw(canvas);
return bitmap;
}
网站题目:[Android学习笔记二]View转化Bitmap
文章起源:http://www.jxjierui.cn/article/jjjddd.html


咨询
建站咨询
