3分钟学习点九图的制作和使用(聊天气泡的实现)

我们都知道Android平台有多种不同的分辨率,很多控件的切图文件在被放大拉伸后,边角会模糊失真,有的甚至会变形。那么如何去避免这种情况呢?

答案是:使用 点九图(xxx.9.png) 代替那些随着分辨率需要拉伸改变、或者随着程序运行需要改变的图片,可以避免变形、模糊失真等不良效果!

使用点九图的优势:

  • 拉伸效果:在Android平台下使用点九PNG技术,可以将图片横向和纵向同时进行拉伸,以实现在多分辨率下的完美显示效果

在这里插入图片描述

  • 显示效果:使用点九图可以减少由于屏幕素质差而导致的横纹,如下,点九图的横纹明显少于PNG格式(仔细观察)
    在这里插入图片描述
  • 减少工程量&安装包大小:使用点九图,可以用一套界面去适配各种分辨率的屏幕,并且可以减少安装包的大小

制作(两种方法):

这里不讲SDK下的工具draw9patch,因为我觉得AndroidStudio里面自带的更方便

工具:PS(或者其他可以编辑图片的工具)、AndroidStudio

准备工作:

  1. 把你想要制作成点九图的图片 四周都加上一个像素(px)的空白区域

    PS打开画布大小,快捷键:Ctrl+Alt+C,把相对取消勾选,然后把单位改成像素,宽度和高度都在原有的基础上**+2**,然后点击确定,PS就会自动帮你在你图片的上下左右加上1像素的空白位置
    在这里插入图片描述

全程PS制作:(无预览图)

首先要知道,点九图肯定是想让那些纯色(或者渐变色),不会被拉伸变形的地方作为可拉伸区域,那些有图像的地方不让他去拉伸。

上下的黑边:黑边所在区域的 纵向 作为可拉伸区域(如下图)

左右的黑边:黑边所在区域的 横向 作为可拉伸区域

填充好了黑色以后,直接保存图片为xxx.9.png的格式复制到你项目的 res/Drawable 就可以了!(也可以先保存为PNG格式,然后重命名修改)

注意:手绘的黑线拉伸区必须是#000000,透明度100%,并且图像四边不能出现半透明像素

在这里插入图片描述

PS+AndroidStudio制作:(可视化操作,有预览图)

  1. 保存图片,文件拓展名改成 xxx.9.png ,把这张点九图复制到你项目的res/Drawable文件夹中

  2. 点开图片:点开图片,左下角切换成点九图的编辑模式,然后四个CheckBox是一些区域的显示(比如你设置的可拉伸区域)
    在这里插入图片描述

  3. 然后就可以开始设置这张点九图的拉伸区域了(边缘1像素的位置是你的操作区

    你需要用鼠标在图片最边缘那1像素的空白位置拖出一根线来(如图,横向区域也一样拖),黄色的区域就代表可拉伸区域,并且可以设置多个可拉伸区域,这样可以保证图像的布局不发生变化,比如这张图片上面中间部分,可以让无论图片怎么拉伸,都处于图片的上面中间(如果图片比较大建议把视图放大一些再拖)

在这里插入图片描述

大功告成!我是纵向设置了两个区域,横向设置了一个区域,可以看到右边的拉伸预览图,图片上图像的布局和原图一样,并且没有被图片的拉伸所影响!

在这里插入图片描述
注意:由于点九图的特性是在拉伸图片的时候保证图片的效果,而不包括缩,所以点九图一般是越小越好

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Python Tkinter是一种GUI编程库,可以用于创建各种用户界面,包括聊天气泡对话框。实现聊天气泡对话框的方法如下: 1. 导入Tkinter模块 ```python import tkinter as tk ``` 2. 创建主窗口 ```python root = tk.Tk() ``` 3. 创建一个Frame框架,用于显示聊天气泡 ```python frame = tk.Frame(root) frame.pack() ``` 4. 创建一个文本框用于输入聊天内容 ```python input_text = tk.Text(frame, height=5, width=50) input_text.pack(side=tk.LEFT, fill=tk.BOTH, padx=5, pady=5) ``` 5. 创建一个按钮,用于发送聊天内容 ```python send_button = tk.Button(frame, text="发送", command=send_message) send_button.pack(side=tk.RIGHT, padx=5, pady=5) ``` 6. 创建一个标签框架,用于显示聊天记录 ```python label_frame = tk.LabelFrame(root, text="聊天记录") label_frame.pack(fill=tk.BOTH, expand=True, padx=10, pady=10) ``` 7. 在标签框架中创建一个滚动条 ```python scrollbar = tk.Scrollbar(label_frame) scrollbar.pack(side=tk.RIGHT, fill=tk.Y) ``` 8. 在标签框架中创建一个文本框,用于显示聊天记录 ```python label_text = tk.Text(label_frame, height=20, width=50, yscrollcommand=scrollbar.set) label_text.pack(side=tk.LEFT, fill=tk.BOTH) ``` 9. 定义一个函数用于发送聊天内容 ```python def send_message(): message = input_text.get(1.0, tk.END).strip() if message: label_text.insert(tk.END, "你: " + message + "\n") input_text.delete(1.0, tk.END) label_text.see(tk.END) ``` 10. 运行主窗口 ```python root.mainloop() ``` 以上就是实现Python Tkinter聊天气泡对话框的基本步骤。如果需要美化界面或增加其他功能,可以根据实际需求进行修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值