Android 微信/QQ分享图片黑边问题

本文探讨了在Android中使用ImageView保存图片并分享到QQ时出现黑边的问题。问题可能与QQ端ImageView的scaletype属性或显示时的图片缩放有关。解决方案是将ImageView的宽高设置为固定值,以避免黑边的出现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

}
注意:在适当时候,要清除该临时文件哦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值