700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Android聊天气泡如何使用网络.png图片实现拉伸

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

时间:2022-03-21 05:04:41

相关推荐

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

最近在做的是一个语音连麦项目,里面有公屏聊天,之前的聊天背景是自己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>() {@Overridepublic boolean onLoadFailed(@Nullable GlideException e, Object o, Target<File> target, boolean b) {return false;}@Overridepublic 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();

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。