[转]Android界面设计中的.9.png的使用技巧

[转]Android界面设计中的.9.png的使用技巧

  在Android的设计过程中,为了适配不同的手机分辨率,图片大多需要拉伸或者压缩,这样就出现了可以任意调整大小的一种图片格式“.9.png”。这种图片是用于Android开发的一种特殊的图片格式,它的好处在于可以用简单的方式把一张图片中哪些区域可以拉伸,哪些区域不可以拉伸设定好,同时可以把显示内容区域的位置标示清楚。

  本文结合一些具体的例子来看下.9.png的具体用法。

  首先看下普通的.png资源与.9.png的资源区别:

  普通的png资源就不多介绍了,可以明显看到.9.png的外围是有一些黑色的线条的,那这些线条是用来做什么的呢?我们来看下放大的图像:

  放大后可以比较明显的看到上下左右分别有一个像素的黑色线段,这里分别标注了序号。简单来说,序号1和2标识了可以拉伸的区域,序号3和4标识了内容区域。当设定了按钮实际应用的宽和高之后,横向会拉伸1区域的像素,纵向会拉伸2区域的像素。如下图:

  拉伸的含义应该比较容易理解,但是内容区域的标注有什么意义呢?我们来看下图:

  这里程序设置的文字垂直居中,水平居左的对齐方式。对齐方式是没有问题的,但是对于这种大圆角同时又有些不规则边框的的图形来说,错误的标注方式会让排版看起来很混乱。所以我们需要修正内容区域的线段位置和长度。

  把横向的内容区域缩短到圆角以内,纵向的内容区域控制在输入框的高度以内,这样文字就可以正常显示了。  

  这里还有一种特殊情况,就是本身是.9.png的资源,但是在修改过程中你希望这张.9.png不能被拉伸(在做皮肤的情况中有可能会遇到),那怎么办呢?只要把拉伸区域的点点在透明像素的地方就可以了,这样拉伸的时候会拉伸透明部分的像素,而不会拉伸图像本身。如下图:

  大家可以看到拉伸区域的黑点是可以不连续的。

  说了半天.9.png的用法,那.9.png如何输出呢?有很多种方式可以输出.9.png,比如说用draw9patch.bat这个工具,或者简单一点,用photoshop直接输出。输出的方式是先输出普通的png资源,然后扩大画布大小,上下左右各空出一个像素,再用一个像素的铅笔工具(颜色选择纯黑色),上下左右分别画点就可以了,保存的时候注意把后缀修改为.9.png。有两点需要特别注意下:  1.最外围的一圈像素必须要么是纯黑色,要么是透明,一点点的半透明的像素都不可以有,比如 说99%的黑色或者是1%的投影都不可以有;   2.文件的后缀名必须是.9.png,不能是.png或者是.9.png.png,这样的命名都会导致编译失败。

时间: 2024-10-31 12:57:01

[转]Android界面设计中的.9.png的使用技巧的相关文章

android界面设计之布局管理

谈到android界面设计,各种布局样式不得不提!传统的布局方式有6种,我们会一一介绍. 在android studio2.2版本之后出现了一款超棒的布局方式,真正意义上的所见即所得,后面我们也会讲到! 1.LinearLayout:线性布局:线性布局又有两种,"垂直布局"和"水平布局". 垂直布局每一行只能有一个控件(自己嵌套的不算): 水平布局只有一行,所有的控件依次从左向右排列: linearLayout中有一个重要的属性 android:layout_wei

android界面设计之布局

一.线性布局 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orie

看大家android界面设计是拿Android Design UI Kit设计的,不直接在eclipse里设计,但是UI KIT怎么用呢

============问题描述============ Android 4.4 Design UI Kit (Nexus 4 version)打开十psd格式的,看网上说吧psd里面自己需要用到的东西保存为png格式,然后是要把png格式的图片当做android控件的背景使用? 其他类似的工具呢? ============解决方案1============ 一切不问是不是就问为什么的都是耍流氓,不知道你是怎么得出"android界面设计是拿Android Design UI Kit设计的,不直

Android界面设计适配不同屏幕的尺寸和密度解读

Android是运行在各种提供不同的屏幕尺寸和密度的设备.Android系统提供跨设备的统一开发环境和处理大部分的工作,以调整每个应用程序的用户界面,以在其上显示的画面. 同时,该系统提供了API,允许您控制您的应用程序的UI特定的屏幕尺寸和密度,以优化你的用户界面设计,不同的屏幕配置.作为设计师也要最大程度地为所有设备的体现良好的用户体验或是方便使用阅读,而不是简单地拉伸以适应屏幕上的设备. 25学堂跟大家分享这篇Android界面设计适配不同屏幕的尺寸和密度的问题.有几个知识点需要解读下.

Android界面设计之对话框——定制Toast、AlertDialog

一.概述 在界面设计中需要根据用户操作显示提示信息.出错信息等,就要用到对话框.Android实现提示信息显示常用有两种方式 1.Toast 2.AlertDialog 二.Toast Android中用来显示显示信息的一种机制,属于轻量级消息开发中使用频率很高.其特点 1. 不接受用户操作,没有焦点 2. 显示的时间有限,过一定的时间就会自动消失. 使用Toast显示信息非常简单,操作如下: Toast toast=Toast.makeText(this, "数据加载完成", Toa

从网站界面设计中领悟PPT设计灵感

一般的网站设计从规划到内容都非常注重用户的体验与可用性准则,网站整体风格简约,洁净,各个信息点都力图让浏览者了如指掌. 我们做ppt设计能够从一些优秀的网站界面中寻觅一些灵感. 1.网站中的版式的设计 我们从网站中寻觅ppt设计的灵感不是相对于一切的网站界面,必需经过仔细的挑选和区分.以上网页中上下构造的规划在网站设计中算是比较常见的一种.类比于一个新建的空白ppt文档,当我们用色块填充了一半的空间后,就曾经构成了一个上下构造的布局. 从网站中寻觅ppt设计的灵感还要学会对网站界面中内容的过滤,

安卓界面设计中属性设置

最近在学习安卓界面设计的时候,对于其中很多参数很是迷茫,于是查找了一番之后总结如下: 第一组: android:gravity: view组件内部内容的gravity属性 android:layout_gravity:view组件相对于其父组件的属性 如下图所示: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.andro

Android界面设计的一点体会

Android的应用程序很多渠道都分类为: 应用和游戏两大类: 在界面设计上,小编自己有如下体会 1.  对于应用类的APP尽量不使用下面的全屏: public void onCreate(Bundle savedInstanceState) { getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 使用了如上代码意味着用户在使用你

界面设计中需要注意的小细节

界面设计包括哪些细节.如何深入? 我们常说“细节决定成败”,有些界面会让人觉得不精致,缺细节,而这些细节又包括哪些呢?如何去深入呢? 界面元素的对齐,我见过很多同学对齐是永远靠眼睛的.确实在布局的时候经常需要做到视觉上的对齐,而不是机械的对齐,但这不是界面元素可以随意摆放的借口,该对齐的内容需要对齐,有时候只是举手之劳,养成好习惯很重要,有点强迫症也不是坏事情. 像素精确,虽然现在的分辨率越来越高,但是很多图标.按钮的边缘还是最好都检查一遍保证垂直和水平边缘不会被虚化. 界面光源的一致性,一致性