Android10--Android程序界面

标签: Android

创建时间:2016-9-24 21:10:05
更新时间:2016-9-24 14:43:30


undefined

组成内容 #

单位和尺寸 #

前面的章节中,我们经常使用match_parentwrap_content来设置控件的宽高,但仅使用这两个无法满足实际开发需求。我们有必要对组件设置固定的宽高。

在布局文件中指定宽高的固定大小有以下常用单位可供选择:px、pt、dp和sp。

为什么不使用px和pt #

在html里,px和pt使用很频繁。px是像素的意思,即屏幕中可以显示的最小元素单元,我们应用里任何可见的东西都由一个个像素点组成的。

在移动端,这两个单位就显得有些力不从心了,因为手机的分辨率各不相同,一个200px宽的按钮在低分辨率的手机上可能将近占据满屏,而到了高分辨率的手机上可能只占据屏幕的一半。

使用dp和sp #

谷歌当然也意识到了这个令人头疼了问题,于是为Android引入了一套新的单位dp和sp。

dp(dip): device independent pixels(设备独立像素),是密度无关像素的意思,也被称作dip,和px相比,它在不同密度的屏幕中的显示比例将保持一致。

sp是可伸缩像素的意思,它采用了和dp同样的设计理念,解决了文字大小的适配问题。

这里有一个新名词需要引起我们的注意,什么叫密度?Android中的密度就是屏幕每英寸所包含的像素数,通常以dpi为单位。比如一个手机屏幕的宽是2英寸长是3英寸,如果它的分辨率是320*480像素,那这个屏幕的密度就是160dpi,如果它的分辨率是640*960,那这个屏幕的密度就是320dpi,因此密度值越高的屏幕显示的效果就越精细。

我们可以通过代码来得知当前屏幕的密度值是多少,修改MainActivity中的代码,如下所示:

public class MainActivity extends Activity{
    @Override
    protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        floatxdpi = getResources().getDisplayMetrics().xdpi;
        floatydpi = getResources().getDisplayMetrics().ydpi;
        Log.d("MainActivity", "xdpiis" + xdpi);
        Log.d("MainActivity", "ydpiis" + ydpi);
    }
}

点九图 #

什么是.9图片 #

图片后缀名前有.9的图片,如pic1.9.png这样的图片。我们经常看到微信QQ聊天里的聊天气泡,可以随着文字的多少自由拉伸,这个就是点九图。

.9图片作用 #

在图片拉伸的时候特定的区域不会发生图片失真,而不失真的区域可以由我们自己绘制。

.9图片用什么做 #

1、Android SDK自带:draw9patch.bat
2、NinePatchEditor,相比起自带的,做了一些优化,支持批量操作

如何做.9图片 #

Build by Loppo 0.6.6