Android聊天气泡如何使用网络.png图片实现拉伸

本文介绍了一种在Android中实现图片拉伸的方法,通过将.9图转换为png格式,并利用特定工具进行处理,使得图片可以在不同尺寸下保持良好的视觉效果。文章详细记录了从需求分析到解决方案的过程。

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

最近在做的是一个语音连麦项目,里面有公屏聊天,之前的聊天背景是自己shape画的纯色或者渐变色,但是新需求是让用上UI妹子设计的各种各样气泡比如这样

然后拉伸的,这种图片是不放在本地的,要后台返回链接,自己加载。

经过调研发现其他家的用的是一张png图片,我就很好奇这怎么拉伸,于是我把他们的链接图片下载下来果然可以拉伸,好神奇啊。

在我的印象里面安卓只有.9图才能拉伸啊,于是跟ios讨论,发现人家更吊,代码设置就可以拉伸图片,研究吧。

把图片放到studio里面,看不出来啥啊,打开图片详情信息也看不出来啊,崩溃了,UI妹子还问我要什么图,要设计了怎么办!

在群里赶紧咨询大佬才知道原来就是.9图, 只不过是转成png了,大佬直接一个链接甩过来啥都看明白了,果然我只是代码的搬运工。

首先把UI妹子的图片在studio或者工具绘制成.9图片,然后用sdk里面的 aapt工具转换

简单说一下.9图的四条线

 

.9图分为拉伸区域和内容区域

左边的黑线和顶部的黑线表示拉伸区域

右边的黑线和底部的黑线表示文字内容区域

使用Glide默认加载亲测会拉伸变形,末尾给出加载方式!

在Android Studio配置里面找到SDK的详情路径然后打开

上图

 

 进入到 build-tools 随便选一个版本 我选的是 28.0.3

然后输入命令 

/aapt s -i xxx.9.png -o xxx.png
-i 后面接要转换图片的路径 -o 后面是新图片输入路径

就这样搞定了!

又学到了

使用Glide加载亲测会拉伸变形,放上加载文件方式

  Glide.with(context)
                .downloadOnly()
                .load(chatRoomData.bubbleUrl)
                .listener(new RequestListener<File>() {
                    @Override
                    public boolean onLoadFailed(@Nullable GlideException e, Object o, Target<File> target, boolean b) {
                        return false;
                    }

                    @Override
                    public boolean onResourceReady(File file, Object o, Target<File> target, DataSource dataSource, boolean b) {
                        textChatViewHolder.mTvChatContent.setBackground(BitmapDrawable.createFromPath(file.getAbsolutePath()));
                        if (!TextUtils.isEmpty(chatRoomData.bubbleColor)) {
                            try {
                                textChatViewHolder.mTvChatContent.setTextColor(Color.parseColor(chatRoomData.bubbleColor));
                            } catch (Exception e) {
                                MyLogs.d("", "修改气泡文字颜色失败");
                            }
                        } else {
                            textChatViewHolder.mTvChatContent.setTextColor(Color.WHITE);
                        }
                        return false;
                    }
                }).preload();

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值