屏幕适配

2017-10-18  本文已影响0人  不改初心丶

屏幕适配

1 . 一些值得注意到事项

  • 首先在安卓代码中,写死的数值都是px值,需要转化为dp值。
  • 控件的长度使用dp,字体大小使用sp。
  • 人眼看到的是大小和dp长度一样,dp一样,那么人眼看到的大小是一样的。

2 . 申请一个dp长度

(int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, num, getResources().getDisplayMetrics());

3 .关于高清屏图片缩小问题答:new BitmapDrawable(getResources(),图片SD路径);BitmapFactory.decodeFile(loc);上两种方法读取图片读取的图片为图片实际像素点(px),展示时候需要放大【目标屏幕密度/标准密度】倍数,
不要使用new BitmapDrawable(Bitmap对象),这样会缩小【目标屏幕密度/标准密度】倍的图片,应该使用new BitmapDrawable(getResources(),Bitmap对象)

public Bitmap getBitMap(String loc) {
        Bitmap bitmap = BitmapFactory.decodeFile(loc);
        if (bitmap == null) {
            return null;
        }
        int width = bitmap.getWidth();
        int height = bitmap.getHeight();
        Matrix matrix = new Matrix();   // 创建操作图片用的Matrix对象
        float rate = getApplicationContext().getResources().getDisplayMetrics().density;
        matrix.postScale(rate, rate);         // 设置缩放比例
        Bitmap newbmp = Bitmap.createBitmap(bitmap, 0, 0, width, height,
                matrix, true);
        return newbmp;
    }

4.获取屏幕分辨率的大小

DisplayMetrics metrics = new DisplayMetrics();
  Display display = activity.getwindowManager().getDefaultDisplay();
  display.getMetrics(metrics);

这种方式获取屏幕宽高比较好

5.、如果需要在特定分辨率下适配,可以在res目录上新建layout-HxW.xml的文件夹。

参考网址

上一篇 下一篇

猜你喜欢

热点阅读