• android127 zhihuibeijing 屏幕适配


    ## 屏幕适配 ##
    加载不同分辨率的图片是根据手机的像素来加载不同分辨率文件夹下的图片。
    
    > 先在主流屏幕来发: 1280*720(分辨率和手机屏幕大小无关), 遵循原则: 不用AbsoluteLayout(绝对布局), 多用相对布局&线性布局(权重), 要用dp,不用px
    > 
    > 开发后期, 在不同分辨率屏幕上测试(480*800,1920*1080), 如果没出现太大问题(影响正常使用), 就可以上线
    > 
    > 如果后期测出问题怎么办?
    
    - 图片适配
    
        不是很常用,针对不同分辨率的手机做不同的图片。
    
    - 布局适配
    
        不是很常用,  layout-800x480 专门适配480*800屏幕的布局文件。
    
    - 尺寸适配
    
        dp和px的关系: dp = px/设备密度(像素px是真实的屏幕单位)
    
        float density = getResources().getDisplayMetrics().density;
        System.out.println("设备密度:" + density);
    
        320*240(0.75), 480*320(1),480*800(1.5),1280*720(2)
    
        values文件夹下建立一个dimens.xml文件,  values-1280x720文件夹下建立一个dimens.xml文件,这2个dimens.xml分别写<dimen name="textview_width">320dp</dimen>用来在不同的屏幕去加载不同的尺寸。
    
    - 权重适配
        权重只有线性布局有。
        android:weightSum="3",父布局整体有3个权重,子布局总共不足3个则留空。
    
    - 代码适配
    
        获取屏幕宽高,动态计算控件大小
        int width = getWindowManager().getDefaultDisplay().getWidth();//屏幕的宽度
            int height = getWindowManager().getDefaultDisplay().getHeight();//屏幕的高度
    
            TextView tv1 = (TextView) findViewById(R.id.tv_1);
            TextView tv2 = (TextView) findViewById(R.id.tv_2);
    
            LayoutParams params = new LayoutParams(width / 3, (int) (height * 0.2));
            tv1.setLayoutParams(params);//动态设置控件的大小
            tv2.setLayoutParams(params);
  • 相关阅读:
    Webpack4不求人(5) ——编写自定义插件
    Webpack4不求人(4)——编写自定义Loader
    Webpack4不求人(3) ——性能优化
    Webpack4不求人(2) ——手把手搭建TypeScript+React16+ReactRouter5同构应用脚手架
    Shell脚本快速入门(1)
    kafka二进制协议分析与PHP客户端开发
    深入浅出ES6的标准内置对象Proxy
    ES6的Set类型
    深入浅出ES6的迭代器
    Javascript事件系统
  • 原文地址:https://www.cnblogs.com/yaowen/p/5079785.html
Copyright © 2020-2023  润新知