Days29 自定义View(二) & 语言的国际化 & 屏幕适配
来源:互联网 发布:js触发后台事件 编辑:程序博客网 时间:2024/05/22 13:46
3、屏幕适配
根据屏幕的尺寸设置控件的大小
public class MainActivity extends AppCompatActivity { private TextView txt1, txt2, txt3, txt4; private int screenWidth, screenHeight; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); // 窗体管理对象 /** * 整个Android的窗口机制是基于一个叫做 WindowManager,这个接口可以添加view到屏幕,也可以从屏幕删除view。 * WindowManager是全局的 * 它面向的对象一端是屏幕,另一端就是View */ WindowManager windowManager = getWindowManager(); // 构建DisplayMetrics对象 //DisplayMetrics 类提供了一种关于显示的通用信息,如显示大小,分辨率和字体 /** * 注:构造函数DisplayMetrics 不需要传递任何参数;调用getWindowManager() 之后,会取得现有Activity 的Handle , * 此时,getDefaultDisplay() 方法将取得的宽高维度存放于DisplayMetrics 对象中,而取得的宽高维度是以像素为单位(Pixel) , * “像素”所指的是“绝对像素”而非“相对像素”。 */ DisplayMetrics displayMetrics = new DisplayMetrics(); windowManager.getDefaultDisplay().getMetrics(displayMetrics); // 获取当前设备的宽度和高度 screenWidth = displayMetrics.widthPixels; screenHeight = displayMetrics.heightPixels; Log.d("test", screenHeight + "screenHeight"); /** * LayoutParams相当于一个Layout的信息包,它封装了Layout的位置、高、宽等信息。 * LayoutParams类也只是简单的描述了宽高,宽和高都可以设置成三种值: 1,一个确定的值; 2,FILL_PARENT,即填满(和父容器一样大小); 3,WRAP_CONTENT,即包裹住组件就好 * 假设在屏幕上一块区域是由一个Layout占领的,如果将一个View添加到一个Layout中,最好告诉Layout用户期望的布局方式, * 也就是将一个认可的layoutParams传递进去 */ LinearLayout.LayoutParams layoutParams1 = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, (int) (screenHeight * 0.1 + 0.5)); layoutParams1.topMargin = 3; txt1.setLayoutParams(layoutParams1); LinearLayout.LayoutParams layoutParams2 = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, (int) (screenHeight * 0.2 + 0.5)); layoutParams2.topMargin = 3; txt2.setLayoutParams(layoutParams2); LinearLayout.LayoutParams layoutParams3 = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, (int) (screenHeight * 0.3 + 0.5)); layoutParams3.topMargin = 3; txt3.setLayoutParams(layoutParams3); LinearLayout.LayoutParams layoutParams4 = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, (int) (screenHeight * 0.4 + 0.5)); layoutParams4.topMargin = 3; txt4.setLayoutParams(layoutParams4);// LinearLayout.LayoutParams layoutParams4 = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);// layoutParams4.topMargin = 3;// txt4.setLayoutParams(layoutParams4); } private void initView() { txt1 = (TextView) findViewById(R.id.txt1); txt2 = (TextView) findViewById(R.id.txt2); txt3 = (TextView) findViewById(R.id.txt3); txt4 = (TextView) findViewById(R.id.txt4); }}
0 0
- Days29 自定义View(二) & 语言的国际化 & 屏幕适配
- android的国际化、屏幕适配
- 自定义view(二)
- 自定义view(二)
- 自定义View(二)
- 自定义View(二)
- 自定义View(二)
- 自定义View (二)
- 自定义View(二)
- 自定义歌词View的优化(二)
- 自定义View之ImageView做屏幕适配
- android自定义View二(View的种类)
- Android应用的国际化、样式和主题、屏幕适配
- view屏幕适配
- 自定义View基础(二)View的滑动
- Android适配(屏幕适配、国际化适配)
- Android适配(屏幕适配、国际化适配)
- Android旋转屏幕后国际化语言失效的解决办法
- cmd 文件批量重命名,修改文件后缀
- 自己实现迷宫算法并且打印出最优路径
- 最小树高的根(Roots of a tree which give minimum height)
- 用数据告诉你到顶尖投行工作,究竟应该读什么专业
- Referenced file contains errors (http://www.springframework.org/schema/beans/spring-beans-3.0.xsd).
- Days29 自定义View(二) & 语言的国际化 & 屏幕适配
- Unity日常(二)
- winfrom多控件闪烁问题的解决
- HDU 2588 欧拉函数的应用
- response和request的setCharacterEncoding 区别
- strut2中一个form下多个按钮处理
- 10000000 in 1
- LeetCode: Longest Increasing Subsequence
- delphi7 TActionManager TTreeView 简单应用