安卓中的UI知识

Android UI之原生——(1)、Android UI入门及常见属性与现象

原创  2015年06月17日 15:27:23
  • 1806

转载请注明本文出自JFlex的博客http://blog.csdn.net/jflex/article/details/46476599,请尊重他人的辛勤劳动成果,谢谢!

Android UI之原生——(1)、Android UI入门及常见属性与现象

导读 :Android UI入门,对于很多人来讲都是比较简单的,教程也多如牛毛,但是这篇绝对和其他的不一样。从接触android开发就注定UI开发是一个一直需要研究的课题,简单的原生UI使用可能你已经掌握,也可能发现某些组件有着一些不爽,但是只要你搞懂原因,就可以了。实在觉得用着不爽,那么就让自己的UI开发能力变强,然后自己写个好点的。android UI开发需要先学会使用原生UI,然后在学会使用开源UI,最后才是自定义UI。按照这个顺序才会不断提升android UI开发的能力,一定要循序渐进。


一、一起来看看android UI

1、xml和code分别画出UI
  1. xml的UI示例(必须了解XML知识) 
    示例:res/layout/activity_main.xml

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
         <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="10dp"
            android:text="这是一个TextView" />
    </LinearLayout>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    1、layout的组成:跟标签可以是任意组件,但是只有继承ViewGroup的组件才能包含子控件 
    2、命名空间:android自带的命名空间,当然自定义组件的时候,需要自定义命名空间 
    3、android的组件属性:基本上都是按照英文单词定义的,所以大部分都是很好理解,只需要多多练习就会记住

  2. code的UI示例(必须熟悉java语言) 
    示例:com/snicesoft/testlayout/MainActivity.java

    public class MainActivity extends Activity{
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            //setContentView(R.layout.activity_main);
            LinearLayout layout = new LinearLayout(this);
            setContentView(layout);
            TextView textView = new TextView(this);
            textView.setText("我是代码创建的TextView");
            layout.addView(textView);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    这里只是简单的例子。当然一般情况,xml实现的布局都可以通过java代码实现,但是尽管这样,还是推荐使用xml控制布局,这样灵活性比较好,能够分离UI。 
    可能大家忽略一个问题,eclipse、android studio等IDE都提供了可视化界面开发,为啥没提到。这里说明下,可视化操作往往不能满足更加细致的UI制作,只能简单生成控件的轮廓代码,如果需要制作精细的UI,那么建议还是手动编写xml,当然也不是很难,毕竟代码提示还是很方便的。

2、怎么给UI上色及资源适配
  1. color的使用 
    color基本上都需要存放在res\values\colors.xml或者res\color\ 
    colors.xml

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
    
        <color name="menu_txt_default">#333333</color>
        <color name="menu_txt_checked">#48D1CC</color>
    
    </resources>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
  2. drawable的使用 
    1. drawable 
      只需要将图片copy到res/drawable-xxxx目录下 
      xml中使用@drawable/xxx 
      java中使用R.drawable.xxx
    2. drawable适配:drawable-xxx 
      ldpi:240x320 
      mdpi:320x480 
      hdpi:480x800、480x854 
      xhdpi:至少960*720 
      xxhdpi:1280×720 
      注意:图片仅支持png和jpg
  3. 国际化处理(多语言) 
    国际化处理主要体现在res上,解决办法 
    values文件夹:values-国家语言 
    比如: 
    美国英文环境:values-en-rUS 
    中文环境为:values-zh 
    大陆地区中文环境: values-zh-cn 
    具体更多的请查询Locale这个类 
    图片资源以及其他资源也相同的配置
2、分辨率有大有小,怎么办

分辨率适配是android开发必备的技能。 
一般的处理方式是:一份layout,通过不同分辨率的values中定义dimens处理不同分辨率需要的组件尺寸。 
1. 常用布局 
LinearLayout:线性布局,垂直和水平设置,使用比较多 
RelativeLayout:相对布局,使用比较多 
FrameLayout:层布局,多层View叠加处理。 
TableLayout:表格布局,就像html中的table一样 
2. 多使用dimens

3、UI开发最佳规范
  • layout尽量用最少的控件完成需求,避免重复
  • 布局复杂,多使用<inflate>
  • id命名规范:组件缩写+业务名,下面是部分组件缩写 
    • LayoutView:lv
    • RelativeView:rv
    • TextView:tv
    • ImageView:iv
    • ImageButton:im
    • Button:btn
  • 多使用style,学会在layout中提取相同的style
  • .9图的制作
  • 杜绝使用px
  • layout中多使用strings.xml、dimens.xml、colors.xml中的值
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值