屏幕适配

屏幕适配:有几种方式啦(五种)

​ 1:图片适配

​ 需要准备不同的图片资源,系统根据屏幕尺寸自动加载图片(drawable-xhdpi ...)

​ 2:布局适配

​ 需要适配对应屏幕的布局 创建新的布局文件 layout-800x480 把对应的布局加载进去

​ 3:比重适配

​ 设置权重比例设置 (实用于线性布局)

​ 4:dimension适配

​ 设置对应屏幕的dimens资源 dp sp values-800x480 下 dimens 资源

​ 5:代码适配

​ 在代码中获取手机屏幕的宽高;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    //获取手机屏幕的宽度
    int widthPixels = getResources().getDisplayMetrics().widthPixels;//宽度
    int heightPixels = getResources().getDisplayMetrics().heightPixels;//高度

    float density = getResources().getDisplayMetrics().density;//密度
    int densityDpi = getResources().getDisplayMetrics().densityDpi;//像素密度

    Log.i(TAG,"widthPixels:"+widthPixels);
    Log.i(TAG,"heightPixels:"+heightPixels);
    Log.i(TAG,"density:"+density);
    Log.i(TAG,"densityDpi:"+densityDpi);


    LinearLayout ll = (LinearLayout) findViewById(R.id.ll);
    RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) ll.getLayoutParams();
    params.width = widthPixels/4;
    params.height = heightPixels;
    //设置布局参数
    ll.setLayoutParams(params);
}

px和dp的转换

/**
 * 像素转换的工具类
 */
public class Dp2PxUtils {
    //dp转换成px
    public static int dp2px(Context context,int dp){
        return (int)(dp * context.getResources().getDisplayMetrics().density + 0.5);
    }

你可能感兴趣的:(屏幕适配)