(1)问题产生的原因
前提:本人是通过将ImageView中图片保存为本地的方式,继而进行分享的(文章结尾会附上实现方式),xml布局时,图片的大小为包裹布局。
问题:如下,QQ显示存在黑边。经过研究,发现QQ将该图转存到本地时,也是黑边显示(QQ可能也是将整个控件的内容绘制后保存的)。而将改图替换成其他图片时,部分图片又显示正常。故猜测:黑边问题可能跟QQ端ImageView的scaletype属性有关,也有可能是显示时未获取到图片真实大小缩放问题等
(2)解决方式
xml中,将Imageview的宽高设置成固定的两个值。后期可能会有更好的方法,再进行补充
附录:
将ImageView内容保存到本地:
/** * 将View保存为图片 * 【原理:创建一个新的Bitmap,然后再根据它来创建一个Canvas,最后调用View的draw方法将View画到Canvas上,这样得到的Bitmap就是我们想要的。】 * @param v * @return */ public static Bitmap createViewBitmap(View v) { Bitmap bitmap = Bitmap.createBitmap(v.getWidth(), v.getHeight(), Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(bitmap); v.draw(canvas); Log.d("分享图片绘制",bitmap.getWidth()+" - ------ "+bitmap.getHeight()); saveTempBitmap(bitmap,shareBitmapPath); return bitmap; } public static void saveTempBitmap(Bitmap bitmap,String path){ File file = new File(path); try { out = new FileOutputStream(file); bitmap.compress(Bitmap.CompressFormat.PNG, 100, out); System.out.println("___________保存的__sd___下_______________________"); out.flush(); out.close(); } catch (Exception e) { e.printStackTrace(); } }注意:在适当时候,要清除该临时文件哦!