欢迎访问 生活随笔!

凯发ag旗舰厅登录网址下载

当前位置: 凯发ag旗舰厅登录网址下载 > 运维知识 > android >内容正文

android

[android学习笔记二] view转化bitmap -凯发ag旗舰厅登录网址下载

发布时间:2025/1/21 android 21 豆豆
凯发ag旗舰厅登录网址下载 收集整理的这篇文章主要介绍了 [android学习笔记二] view转化bitmap 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

   在view类中的ondraw方法的参数canvas是view绘制的背景,要将view转换为bitmap实际上就是让canvas上的绘制操作绘制到bitmap上。


   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;}


转载于:https://blog.51cto.com/aiilive/1711443

总结

以上是凯发ag旗舰厅登录网址下载为你收集整理的[android学习笔记二] view转化bitmap的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得凯发ag旗舰厅登录网址下载网站内容还不错,欢迎将凯发ag旗舰厅登录网址下载推荐给好友。

网站地图