Android屏幕自适应解决办法
来源:互联网 发布:华测手簿同步软件 编辑:程序博客网 时间:2024/04/30 06:41
安卓的xml布局实在难做屏幕自适应,虽然可以使用多个配置文件,但对于适配要求高的应用,依然力不从心。
这里提供一种解决办法。主要是通过以下方法实现:
RelativeLayout.LayoutParams param = new RelativeLayout.LayoutParams(iw, ih);
param.setMargins(x, y, 0, 0);
所有组件都加在RelativeLayout上面,通过setMargins设置坐标和LayoutParams构造函数传入大小。
用法:
详细讲解,请看我的书
这里提供一种解决办法。主要是通过以下方法实现:
RelativeLayout.LayoutParams param = new RelativeLayout.LayoutParams(iw, ih);
param.setMargins(x, y, 0, 0);
所有组件都加在RelativeLayout上面,通过setMargins设置坐标和LayoutParams构造函数传入大小。
坐标和大小相对屏幕缩放。
Factory.java
import com.dangbei.util.Axis;import android.view.View;import android.view.ViewGroup.LayoutParams;import android.widget.RelativeLayout;public class Factory {public static RelativeLayout.LayoutParams createRelativeLayoutParams(int x, int y, int w, int h) {int ix = Axis.scaleX(x);int iy = Axis.scaleY(y);int iw = w == -1 ? LayoutParams.WRAP_CONTENT : w == -2 ? LayoutParams.MATCH_PARENT : Axis.scaleX(w);int ih = h == -1 ? LayoutParams.WRAP_CONTENT : h == -2 ? LayoutParams.MATCH_PARENT : Axis.scaleY(h);RelativeLayout.LayoutParams param = new RelativeLayout.LayoutParams(iw, ih);param.setMargins(ix, iy, 0, 0);return param;}}//Axis.javaimport android.util.DisplayMetrics;public class Axis { private Activity activity; public Axis(Activity activity) { this.activity = activity; public static int scaleX(int x) { DisplayMetrics metrics = new DisplayMetrics(); activity.getWindowManager().getDefaultDisplay().getMetrics(metrics); return (int)(x * metrics.widthPixels / 320); } public static int scaleY(int y) { DisplayMetrics metrics = new DisplayMetrics(); activity.getWindowManager().getDefaultDisplay().getMetrics(metrics); return (int)(y * metrics.heightPixels / 480); }}
用法:
TextView tv = new TextView(context); tv.setText("sample"); RelativeLayout rl = new RelativeLayout(context); rl.addView(tv, Factory.createRelativeLayoutParams(10, 10, 100, 60));
详细讲解,请看我的书
0 0
- Android屏幕自适应解决办法
- Android应用程序自适应屏幕大小的解决办法
- cocos2d-x屏幕自适应解决办法
- cocos2d-x屏幕自适应解决办法
- cocos2d-x 屏幕自适应解决办法
- cocos2d-x 屏幕自适应解决办法
- cocos2d-x屏幕自适应解决办法
- [cocos2d-x]屏幕自适应解决办法
- [cocos2d-x]屏幕自适应解决办法
- cocos2d-x屏幕自适应解决办法
- cocos2d-x屏幕自适应解决办法
- android 屏幕自适应问题
- android:屏幕自适应问题
- android屏幕自适应研究
- [Android]屏幕自适应布局
- android 屏幕自适应
- android屏幕自适应研究
- android:屏幕自适应
- 有句话叫做县官不如现管
- MapReduce Job 全局共享数据
- hdu5107 K-short Problem 离线,离散化,线段树
- 图集name='imgurls' 判断
- android studio 设置编码UTF-8
- Android屏幕自适应解决办法
- 虚伪
- DocFetcher CMD 启动脚本
- 一些简单的shell脚本实例
- 黑马程序员-oc-Block
- 没事
- 解决Android文档打开缓慢问题
- Android动画精讲一:从setTranslationX谈属性动画和view动画的区别
- android:给控件加边框