屏幕适配

分类:
1.图片适配(在不同的像素密度的手机上加载不同文件夹中的图片)
2.dimens.xml适配(在不同的像素密度的手机上加载不同的dimens文件)
3.layout适配(在不同的像素密度的手机上加载不同的布局文件)
4.java代码适配(根据屏幕的像素比例设置宽高)
5.权重的适配(剩余空间进行适配)

1.图片适配(在不同的像素密度的手机上加载不同文件夹中的图片)
一般都是按照一个标准做一套图,占用应用程序的体积,1280*720,用一套图,会出现图片变形问题,但是小图变形明显,大图变形明显

总结:按照一个标准做一套图,将变形严重图片,做多种分辨率格式,放到不同的文件夹下去加载

2.dimens.xml适配(在不同的像素密度的手机上加载不同的dimens文件)
1920*1080 1dp = 3px 1080/3/2 = 180dp

1.res -> values-分辨率(1920x1080)
2.在values目录中创建dimens.xml,在其中设置相应控件的宽高
    <resources>

        <!-- Default screen margins, per the Android Design guidelines. -->
        <dimen name="activity_horizontal_margin">16dp</dimen>
        <dimen name="activity_vertical_margin">16dp</dimen>
        <dimen name="textview_width">180dp</dimen>

    </resources>
3.在默认的values中也要设置相应的属性
4.在布局文件中使用
    <TextView 
        android:layout_width="@dimen/textview_width"
        android:layout_height="30dp"
        android:background="#ff0000"
    />

3.layout适配(在不同的像素密度的手机上加载不同的布局文件),修改layout文件夹
操作类似dimens.xml布局

layout适配一般不用,特殊的手机,魅族 1920*1118  

4.java代码适配(根据屏幕的像素比例设置宽高)

示例代码

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

    //1.获取屏幕的宽高
    DisplayMetrics outMetrics = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(outMetrics);

    Log.i(tag , "width:"+outMetrics.widthPixels);
    Log.i(tag, "height:"+outMetrics.heightPixels);

    //2.获取屏幕宽高一半
    //四舍五入,3.7  3  4   3.7+0.5 = 4.2  4
    int width = (int) (outMetrics.widthPixels/2+0.5f);
    int height = (int) (outMetrics.heightPixels/2+0.5f);

    //3.给控件设置宽高
    //w : 宽度
    //h : 高度
    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(width, height);
    //给控制设置属性了
    tv.setLayoutParams(params);

5.权重的适配(剩余空间进行适配)
主要是通过权重来进行布局,比例

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值