码迷,mamicode.com
首页 > 移动开发 > 详细

android ui篇 自己写界面

时间:2014-11-28 18:03:26      阅读:213      评论:0      收藏:0      [点我收藏+]

标签:android   ar   color   使用   sp   文件   on   bs   cti   

对于一些较为简单的界面则自己进行写。

在这里就需要了解xml文件中一些基本的属性以及android手机的知识。

一、目前手机屏幕像素密度基本有5种情况。(以下像素密度简称密度)

   密度   ldpi      mdpi       hdpi      xhdpi         xxhdpi

密度值  120      160       240      320         480

分辨率  240x320    320x480    480x800    720x1280    1080x1920

    换算  1dp=0.75px   1dp=1px     1dp=1.5px   1dp=2px      1dp=3px

当安卓系统字号为“普通”时,sp==dp,换算到px和dp一样。

 

1.320x480和480x800的屏幕宽度都是320dp,720x1280和1080x1920屏幕宽度都是360dp.

2.默认360dp的屏幕布局(较为主流),对320dp的屏幕单独布局,布局文件放到layout-w320dp文件夹中,其他特殊分辨率的可以将布局文件放在标有分辨率的文件夹中,如layout-854x480。

 

xml的基本属性以及案例:

在学习控件的过程中我们应该对一些常用的XML属性有更深入的理解,这有利于我们继续学习Android的高级技术。

       1:android:id

       如果要在代码或在XML布局文件中引用某个控件,该控件必须要设置android:id的属性-@id/value或者@+id/value。

  第一种格式中的value必须要在R.id类中存在,也就是说,要为当前控件指定一个在R.id类中已经存在的int类型变量作为其ID值,如果该变量不存在的话,XML布局文件无法验证通过。第二种在@和id之间多了一个加号,表示如果value指定的变量如果在R.id类中存在,则使用已经存在的变量值作为其ID值,否则将会在R.id类中新建一个int类型的变量并储存。

  2:android:layout_width和android:layout_height

  这两个属性分别用来设置控件的宽度和高度,是必选的。可以设置的值除了fill_parent和wrap_content外,还可以设置精确的值,单位是px或者dp(dip)。其中fill_parent表示尽可能地充满父控件的空间,如果当前控件是最上层,就是充满整个屏幕。wrap_content表示根据控件中的内容来确定,也就是说,在满足完全显示控件内容的情况下,把宽度和高度设置为最小。

  3:android:layout_margin

  设置控件到相邻控件或者边缘的距离可以使用android:layout_margin属性。该属性设置了4个方向的距离,也就是上下左右这4个。

  例如:android:layout_margin="50dp"。如果想要单独设置某一个方向的距离,可以单独使用android:marginTop、Bottom、Left、Right这4个属性。

  如果同时设定了android:layout_margin和这4个属性的话,系统优先使用android:layout_margin的属性值。

  4:android:padding

  android:padding属性可以设置控件的内容在4个方向距离控件边缘的距离。与android:layout_margin类似,它也有单独设置某一个方向距离的属性,

  同时也优先于这4个单独的属性。我们初学者比较容易混淆android:padding和android:layout_margin的概念。其实这二者很容易区分,有layout的属性是指控件与控件或者是边缘之间的距离,所以加上了layout,它和控件的布局相关;而没有layout的属性是指该控件中的内容距离控件边缘的距离,和控件的布局位置无关。

  5:android:layout_weight

  这个属性在进行均衡布局时非常有用。所谓均衡布局,是指两个或者多个控件要占用等比例的区域,它们所占的比例不因屏幕的方向变化、屏幕的密度变化以及总宽度或高度的变化而变化。例如,有3个按钮,要求在水平方向各占1/3的长度,就可以将这3个控件的android:layout_weight属性设置为相等的3个值(必须是正整数,不需要加任何单位),如android:layout_weight="1"。

  6:android:layout_gravity和android:gravity

  这两个属性分别表示控件和控件中的内容的位置。例如,在一个<LinearLayout>>标签中,有一个<Button>按钮,要想使Button在水平方向居中,即可以在<Button>标签中设置android:layout_gravity属性,也可以在<LinearLayout>标签中设置android:gravity属性。

  android:layout_gravity和android:gravity可设置的属性值完全一样,常用的属性值如下:

       center_horizontal:水平居中

       center_vertical:垂直居中

       center:水平和垂直都居中

       left:设置到左侧

       right:设置到右侧

       top:设置到顶端

       botton:设置底端

  以上属性均可设置多个,用" | "号连接。

  7:android:visibility

  该属性决定了当前控件是否可见。可设置以下3个属性值。

  visible:控件可见

  invisible:控件不可见,但保留控件的位置

  gone:控件不可见,也不保留控件的位置

  代码修改:View.setVisibility(View.GONE);

  8:android:background

  该属性用于设置控件的背景色或背景图。如果要设置背景色,需要使用#color形式的属性值,其中color表示一个16进制的颜色值。

  设置背景图的话,格式为@drawable/resourceId,其中resourceId表示图像的资源ID,假如我们想要更改我们整个界面的背景图的话,

  可以先找到最上层的一个Layout,在其标签里设置它的android:background=“@drawable/background"。

  9:android:onClick

  从Android1.6开始,视图便多了一个android:onClick属性,通过该属性,可以直接定义当前布局文件的Activity类中的单击事件的方法名。

  该方法的定义要和单击事件一致,方法名可以任意指定,但访问修饰符必须是public。

  此外还有android:clickable和android:longClickable,这两个属性都需要设置布尔类型的属性值,前者表示当前控件是否可以接受单击事件,后者表示当前控件是否可以接受长按单击事件(按住控件不动,则触发长按单击事件)。

  10:android:focusable和android:focusableInTouchMode

  大多数的控件都可以获得焦点,也就是处在选中状态。android:focusable决定当前控件是否可以获得焦点。

  如果将android:foucsableInTouchMode属性值设置为true,当触摸控件时,会先将焦点移动到被触摸的控件上,然后需要再次触摸该控件才会响应单击事件。使用该属性需要将android:focusable属性值设置为true。

 

 

    不错的android界面设计例子:网上搜miniTwitter

android ui篇 自己写界面

标签:android   ar   color   使用   sp   文件   on   bs   cti   

原文地址:http://www.cnblogs.com/yukino/p/4128995.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!