屏幕适配

public class MainActivity extends Activity {

private static final String tag = null;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

//去掉 title

requestWindowFeature(Window.FEATURE_NO_TITLE);

setContentView(R.layout.activity_main);

//获取 TextView 控件

TextView tv   = (TextView) findViewById(R.id.tv);

//找到当前控件的父控件(父控件上给当前的子控件去设定一个规则)

DisplayMetrics metrics = new DisplayMetrics();

//给当前 metrics 去设置当前屏幕信息(宽(像素)高(像素))

getWindowManager().getDefaultDisplay().getMetrics(metrics);

//获取屏幕的高度和宽度

Constant.srceenHeight = metrics.heightPixels;

Constant.srceenWidth = metrics.widthPixels;

//日志输出屏幕的高度和宽度

Log.i(tag, "Constant.srceenHeight = "+Constant.srceenHeight);

Log.i(tag, "Constant.srceenWidth = "+Constant.srceenWidth);

//宽高各 50%

RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(

//数学角度上 四舍五入、

(int)(Constant.srceenWidth*0.5+0.5),(int)(Constant.srceenHeight*0.5+0.5));

//给 tv 控件设置布局参数

tv.setLayoutParams(layoutParams);

    }

}

其中 Constant 类是一个常量类,很简单,只有两个常量用来记录屏幕的宽和高,其代码清单如下:

public class Constant{

    public static int srceenHeight;

    public static int srceenWidth;

}


小记(大约):

ldpi 的手机 1dp=0.75px

mdpi 的手机 1dp=1.0px

hdpi 的手机 1dp=1.5px

hdpi 的手机 1dp=2.0px

xxhdpi 的手机 1dp=3.0


适配方式之

 dp名词解释:

分辨率:eg:480*800,1280*720。表示物理屏幕区域内像素点的总和。(切记:跟屏幕适配没有任何关系)因为我们既可以把 1280*720 的分辨率做到 4.0 的手机上面。我也可以把 1280*720 的分辨率做到 5.0 英寸的手机上面,如果分辨率相同,手机屏幕越小清晰。

px(pix):像素,就是屏幕中最小的一个显示单元dpi(像素密度):即每英寸屏幕所拥有的像素数,像素密度越大,显示画面细节就越丰富。计算公式:像素密度=√{(长度像素数^2+宽度像素数^2)}/ 屏幕尺寸注:屏幕尺寸单位为英寸 例:分辨率为 1280*720 屏幕宽度为 6 英寸 计算所得像素密度约等于 245,屏幕尺寸指屏幕对角线的长度。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值