android学习之view的构造
2016-03-25 15:49
176 查看
通常来说view可以通过三种方式来构造,第一种就是在在xml直接在xml里面写。。。。
第二种就是通过纯java代码来写,第三种的话layoutflater来实现,在下面的代码,我有详细的说明,并且说了注意事项。
第二种就是通过纯java代码来写,第三种的话layoutflater来实现,在下面的代码,我有详细的说明,并且说了注意事项。
package com.example.helloview2; import android.os.Bundle; import android.app.Activity; import android.content.Context; import android.content.res.Resources; import android.view.LayoutInflater; import android.view.Menu; import android.view.View; import android.widget.RelativeLayout; import android.widget.TextView; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 1使用布局文件显示界面 //setContentView(R.layout.activity_main); // 2纯java代码编写界面,并显示 // 先创建relativelayout // 在android里面,context提供给系统应用级的操作,也被认为是静态上下文 RelativeLayout relativelayout = new RelativeLayout(MainActivity.this); // 在xml文件中有几个padding属性,而java中使用一个方法实现 // relativelayout.setPadding(R.dimen.activity_horizontal_margin, // R.dimen.activity_vertical_margin, // R.dimen.activity_horizontal_margin, // R.dimen.activity_vertical_margin); //setpadding设置的是内边框的数据值 //所以,我们需要获取数据值,也就是在context下获取引用资源 Resources res=getResources(); float activity_horizontal_margin=res.getDimension(R.dimen.activity_horizontal_margin); float activity_vertical_margin=res.getDimension(R.dimen.activity_vertical_margin); relativelayout.setPadding((int)activity_horizontal_margin, (int)activity_vertical_margin, (int)activity_horizontal_margin, (int)activity_vertical_margin); //width和height和环境有关 //创建TextView TextView tv=new TextView(this); //这里的WRAP_CONTENT常量,他们在xml中设置是,是layout—width这个属性 //这里的高度和宽度和我们本身的环境有关(父View),所以需要请求当亲布局参数来获取 // tv.setWidth(tv.getLayoutParams().WRAP_CONTENT); // tv.setHeight(tv.getLayoutParams().WRAP_CONTENT); tv.setText(R.string.hello_world); //建立relativelayout和tv的关系 //这个建立关系的同时只能成立一个 relativelayout.addView(tv, RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT); setContentView(relativelayout); //3布局注入器 //获取系统服务 Context context=MainActivity.this; LayoutInflater inflater=(LayoutInflater) context.getSystemService(context.LAYOUT_INFLATER_SERVICE); //我们可以通过xml文件生成View //参数1:我们要注入的布局文件;参数二:我们通过布局文件生成的View对象,要放在那个父View; View view=inflater.inflate(R.layout.activity_main, null); if(view instanceof RelativeLayout){ System.out.println("view 是从relative生成的"); } //setContentView(view); } }
相关文章推荐
- Java(Android)线程池
- LayoutInflater效率分析及源码跟踪
- Android布局优化之ViewStub、include、merge使用与源码分析 .
- Android总结(二)
- Android 手机QQ临时会话
- 创业公司求IOS、Android攻城狮一枚
- Android Universal Image Loader加载 ListView 滑动过程中图片显示重复错位闪烁问题
- Android处理图片OOM的若干方法小结
- [原创]android自定义动画的一点感悟
- Android开发之TableLayout表格布局
- Android实现注解的方式
- Android相关属性的介绍:android:exported
- 最近android技术归纳
- Android 常见分辨率(mdpi、hdpi 、xhdpi、xxhdpi )及屏幕适配注意事项
- android炫酷开源项目
- 自动化清理Android中无用的资源文件。
- [修复] Firemonkey 使用 DrawPath 断线问题(Android & iOS 平台)
- 安卓解决大图片内存溢出
- Launcher3 翻页动画详解与修改
- Android:EventBus的使用 从此消息传递变得简单