Android实现分享长图并且添加全图水印
Android实现分享长图并且添加全图水印
前言:
长图一般是ScrollView和ListView。
我们需要取得这两个控件的完整显示的图片。原理很简单,搞一张和控件长宽一致的画布(就是创建一个高宽相等的bitmap)。然后调用控件的draw方法把自己画到画布上去。
分别贴出两个控件的长图获取方法
/** *截取scrollview的屏幕 **/ publicstaticBitmapgetScrollViewBitmap(ScrollViewscrollView){ inth=0; Bitmapbitmap; for(inti=0;i /** *截图listview **/ publicstaticBitmapgetListViewBitmap(ListViewlistView,Stringpicpath){ inth=0; Bitmapbitmap; //获取listView实际高度 for(inti=0;i奉送个获取具体view的显示图的方法
/** *生成某个view的图片 * *@authorgengqiquan *@date2017/3/20上午10:34 */ publicstaticBitmapgetViewDrawingCacheBitmap(Viewview){ view=view.getRootView(); if(!view.isDrawingCacheEnabled()){ view.setDrawingCacheEnabled(true); } view.destroyDrawingCache(); view.buildDrawingCache(); Bitmapbm=view.getDrawingCache(); view.setDrawingCacheEnabled(false); returnbm; }再奉送个生成某个LinearLayout图片的方法
/** *生成某个LinearLayout的图片 * *@authorgengqiquan *@date2017/3/20上午10:34 */ publicstaticBitmapgetLinearLayoutBitmap(LinearLayoutlinearLayout){ inth=0; //获取LinearLayout实际高度 for(inti=0;i完了产品肯定会让你在下面或者上面加上公司的logo图片的,嗯。好人做到低,再送个拼接图片的方法
/** *拼接图片 *@paramfirst分享的长图 *@paramsecond公司logo图 *@authorgengqiquan *@date2017/3/25下午4:56 */ publicstaticBitmapadd2Bitmap(Bitmapfirst,Bitmapsecond){ floatscale=((float)first.getWidth())/second.getWidth(); second=ImageUtil.scaleImg(second,scale); intwidth=first.getWidth(); intheight=first.getHeight()+second.getHeight(); Bitmapresult=Bitmap.createBitmap(width,height,Bitmap.Config.ARGB_4444); Canvascanvas=newCanvas(result); canvas.drawBitmap(first,0,0,null); canvas.drawBitmap(second,0,first.getHeight(),null); returnresult; }再来个添加全图水印的方法
/** *@paramfirst原始图 *@parammark水印图 *@authorgengqiquan *@date2017/3/25下午4:58 */ publicstaticBitmapwaterMark(Bitmapfirst,Bitmapmark){ floatscale=((float)first.getWidth())/mark.getWidth(); mark=ImageUtil.scaleImg(mark,scale); intwidth=first.getWidth(); intheight=first.getHeight(); Bitmapresult=Bitmap.createBitmap(width,height,Bitmap.Config.ARGB_4444); Canvascanvas=newCanvas(result); canvas.drawBitmap(first,0,0,null); inth=0; while(h坑爹的chrome有bug。一在这个位置点换行接向上按键就崩溃。写个博客崩溃了七八次。最近真的是运气不好。
其实我是想说:由于最近被注入了个对象,依赖性比较强,所以这段时间很少写博客了,后面补上。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!