Android的基本UI界面一般都是在xml文件里定义好,然后通过activity的setContentView来显示在界面上。这是Android UI的最简单的构建方式。事实上,为了实现更加复杂和更加灵活的UI界面。往往须要动态生成UI界面,甚至依据用户的点击或者配置,动态地改变UI。本文即介绍该技巧。对事件和进程的可能安卓设备实现触摸事件的监听。跨进程
如果Androidproject的一个xml文件名称为activity_main.xml,定义例如以下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | < 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" tools : context = ".MainActivity" > < TextView android : id = "@+id/DynamicText" android : layout_width = "wrap_content" android : layout_height = "wrap_content" / > < / LinearLayout > |
在 MainActivity 中,希望显示这个简单的界面有三种方式(注:以下的代码均在 MainActivity 的 onCreate() 函数中实现 )。
(1) 第一种方式,直接通过传统的 setContentView(R.layout.*) 来载入,即:
1 2 3 4 5 6 7 | setContentView ( R . layout . activity_main ) ; TextView text = ( TextView ) this . findViewById ( R . id . DynamicText ) ; text . setText ( "Hello World" ) ; |
(2) 另外一种方式。通过 LayoutInflater 来间接载入,即:
1 2 3 4 5 6 7 8 9 10 11 12 13 | LayoutInflater mInflater = LayoutInflater . from ( this ) ; View contentView = mInflater . inflate ( R . layout . activity_main , null ) ; TextView text = ( TextView ) contentView . findViewById ( R . id . DynamicText ) ; text . setText ( "Hello World" ) ; setContentView ( contentView ) ; |
注:
LayoutInflater 相当于一个“布局载入器”,有三种方式能够从系统中获取到该布局载入器对象,如:
方法一: LayoutInflater.from(this);
方法二: (LayoutInflater)this.getSystemService(this.LAYOUT_INFLATER_SERVICE);
方法三: this.getLayoutInflater();
通过该对象的 inflate方法。能够将指定的xml文件载入转换为View类对象。该xml文件里的控件的对象。都能够通过该View对象的findViewById方法获取。
(3)第三种方式,纯粹地手工创建 UI 界面
xml 文件里的不论什么标签,都是有对应的类来定义的,因此。我们全然能够不使用xml 文件,纯粹地动态创建所需的UI界面,示比例如以下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | LinearLayout layout = new LinearLayout ( this ) ; TextView text = new TextView ( this ) ; text . setText ( "Hello World" ) ; text . setLayoutParams ( new ViewGroup . LayoutParams ( LayoutParams . WRAP_CONTENT , LayoutParams . WRAP_CONTENT ) ) ; layout . addView ( text ) ; setContentView ( layout ) ; |
Android动态UI创建的技巧就讲到这儿了,在本演示样例中。为了方便理解。都是採用的最简单的样例,因此可能看不出动态创建UI的长处和用途,可是不要紧,先掌握基本技巧,后面的文章中,会慢慢将这些技术应用起来,到时侯就能理解其真正的应用场景了。
转载于:https://www.cnblogs.com/cxchanpin/p/7323327.html