Android 屏幕适配攻略(五)动态创建控件并设置控件的大小
来源:互联网 发布:linux中vi显示行号 编辑:程序博客网 时间:2024/06/07 12:45
Android 屏幕适配攻略(五)动态创建控件并设置控件的大小
例如在 320 * 480 尺寸为 3.2 英寸的手机 ,对应的像素密度应该为 160dpi 对应的像素比例应该是 1.0也就是 1dp = 1sp = 1px
而在 480 * 1280 尺寸为 4.7英寸的手机中,对应的像素密度为 320dpi 对应的像素比例应该是2.0 也就是 1dp = 1sp = 2px
所以在设置控件的尺寸相关时,应当动态的根据屏幕的像素密度大小来计算
下面的实例中都是在 480 * 1280 尺寸为 4.7英寸 的手机中的效果
DisplayMetrics display = new DisplayMetrics();//将当前窗口的一些信息放在DisplayMetrics类中,this.getWindowManager().getDefaultDisplay().getMetrics(display);//获取缩放比例 480 * 1280 尺寸为 4.7英寸 为2.0float scaledDensity = display.scaledDensity;
1 设置已添加到布局文件中的控件来设置大小
1.1 设置宽度与高度以及内边距
//缩放比例 480 * 1280 尺寸为 4.7英寸 为2.0//获取TextViewTextView mTvMainShow = (TextView) findViewById(R.id.tv_main_show);//获取TextView对应的LayoutParamsLayoutParams layoutParams = mTvMainShow.getLayoutParams();if (layoutParams != null) { //设置宽度 layoutParams.width = (int) (120 * scaledDensity); //设置高度 layoutParams.height = (int) (40 * scaledDensity);}//设置内容的内左边距 为20dp mTvMainShow.setPadding((int) (20 * scaledDensity),0,0,0);
1.2 设置宽度与高度、内边距 以及外边距
//获取TextViewTextView mTvMainShow = (TextView) findViewById(R.id.tv_main_show);//获取TextView对应的LayoutParamsLinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams) mTvMainShow.getLayoutParams();if (layoutParams != null) { //设置宽度 layoutParams.width = (int) (120 * scaledDensity); //设置高度 layoutParams.height = (int) (40 * scaledDensity); //设置外左边距 layoutParams.setMargins((int) (20 * scaledDensity),0,0,0);}//设置内容的内左边距 为20dpmTvMainShow.setPadding((int) (20 * scaledDensity),0,0,0);
需要注意的是,在这里,设置控件的外边距就必须指定 它的layoutParams的类型,例如我这里对应LinearLayout.LayoutParams
因为在设置其外边距的时候需要参考父布局,我这里的TextView是在一个线性布局容器中
2 动态的创建新的控件并设置尺寸与添加到视图中
//缩放比例 480 * 1280 尺寸为 4.7英寸 为2.0LinearLayout mLlPrent = (LinearLayout) findViewById(R.id.ll_prent);//创建TextViewTextView textView = new TextView(this);//设置TextView的大小//创建LayoutParams//参数一 对应的宽度大小//参数二 对应的高度大小LinearLayout.LayoutParams layoutParams1 = new LinearLayout.LayoutParams((int) (120 * scaledDensity), (int) (40 * scaledDensity));//设置外边距//参数一 设置左外边距//参数二 设置顶部外边距//参数三 设置右外边距//参数四 设置底部外边距layoutParams1.setMargins((int) (40 * scaledDensity),(int) (40 * scaledDensity),0,0);//设置内边距textView.setPadding(0,0,0,0);//设置大小textView.setLayoutParams(layoutParams1);//设置背景textView.setBackgroundColor(Color.GRAY);//添加到布局文件中mLlPrent.addView(textView);
2.1 对应的xml布局文件
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android" android:layout_width = "match_parent" android:layout_height = "match_parent" android:gravity = "center_vertical" android:id="@+id/ll_prent" android:orientation = "vertical" > <TextView android:id = "@+id/tv_main_show" android:layout_width = "100dp" android:text="test" android:gravity="center_vertical" android:textSize="14sp" android:textColor="#fff" android:layout_height = "44dp" android:background = "#294881" /></LinearLayout >
阅读全文
0 0
- Android 屏幕适配攻略(五)动态创建控件并设置控件的大小
- Android 屏幕适配攻略(四)获取手机屏幕的相关信息 与动态设置控件的大小
- Android 动态指定屏幕朝向,动态设置控件位置大小
- android 动态创建控件并设置布局
- android 动态创建控件并设置布局
- android 动态创建控件并设置布局
- android 动态设置控件的大小 和 动态添加控件
- android 动态设置控件大小
- Android动态设置控件大小
- android动态设置控件大小
- 动态设置控件的大小
- 自动设置Android控件的占有屏幕的大小
- android 通过组件属性动态创建控件并设置布局
- Android 屏幕适配攻略(二)单位dp与px来表示控件的尺寸
- 控件动态设置+屏幕适配(BFAboutVController)
- android 动态设置屏幕控件宽高度
- Android 开发,JAVA动态设置控件大小
- android动态设置控件的大小和位置
- The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar
- test2
- centos快速安装mysql
- C++ Qt学习教程1-50
- JAVA SkipList 跳表 的原理和使用例子
- Android 屏幕适配攻略(五)动态创建控件并设置控件的大小
- jstl标签库易犯错误
- [Azure]使用Powershell统计经典存储账号下容器中Blob的使用情况
- 头文件的包含以及命名空间的引入尽量写在cpp文件中
- tomcat启动startup.bat一闪而过
- ROC曲线与AUC值
- Oracle,MySQL,sqlserver三大数据库如何获取系统当前时间
- C#---DataGridView 控件
- 全面理解Java泛型