IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 2021-09-26 Android: /system/build.prop ro.sf.lcd_density属性简单学习 -> 正文阅读

[移动开发]2021-09-26 Android: /system/build.prop ro.sf.lcd_density属性简单学习

一,ro.sf.lcd_density属性指定了这个机型使用的dpi是多少,dpi全称是dots per inch,对角线每英寸的像素点的个数。

二、dp也叫dip,是device independent pixels。设备不依赖像素的一个单位。在不同的像素密度的设备上会自动适配,

? ? ? ? 1、比如:

? ? ? ? ?在320x480分辨率,像素密度为160,1dp=1px

? ? ? ? ?在480x800分辨率,像素密度为240,1dp=1.5px

? ? ? ? ?计算公式:px = dp * (dpi/160)

? ? ? ? 2、其中的 160 是基准值不会变的, dpi就是我们android设备中的 /system/build.prop 文件,其中有一行是这样:ro.sf.lcd_density=160??

三、这里我们写个小app做个实验测试一下。

? ? ? ?1、布局文件中src\main\res\layout\activity_main.xml定义一个button

? ? ? ? ? ? android:layout_width="120dp"

? ? ? ? ? ? android:layout_height="60dp"

?? ? ? ?2、src\main\java\com\giada\density\MainActivity.java

package com.giada.density;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
    Button  mButton;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mButton = (Button) findViewById(R.id.button);

    }

    public void onClick(View v) {
        // TODO Auto-generated method stub
        switch (v.getId()) {
            case R.id.button:
                Toast.makeText(this,  + mButton.getWidth() + "/" + mButton.getHeight() , Toast.LENGTH_SHORT).show();

                /*
                            DisplayMetrics dm = new DisplayMetrics();
                            getWindowManager().getDefaultDisplay().getMetrics(dm);
                //通常我们在使用DisplayMetrics时,都是直接获取内部变量来使用。所以下面直接列出各个内部变量。

                            dm.ydpi;     //得到物理屏幕上 Y 轴方向每英寸的像素
                            dm.xdpi;     //得到物理屏幕上 X 轴方向每英寸的像素
                            //ps:  其实这两个大多数情况下都是相同的
                            //你能想象上面像素密度大很清晰 下面密度小跟马赛克一样吗 

                            dm.density;           //获取当前设备的基准比例
                            dm.densityDpi;        //获取系统dpi,随着 build.prop 文件中的代码而改变。

                            dm.widthPixels;       //获取屏幕宽度的像素数量

                //获取屏幕高度的像素数量!
                //注意 - 因为这里会自动减去32dp的像素数量,根据分辨率不同的设备,减去的像素数量也不同,但是可以根据公式推算完整(px = dp x 基准比例)。
                //为啥不用dm.densityDpi / 160 得到基准比例?
                因为那个会随着build.prop文件代码变更而更改,算出来的不一定准确
                            dm.heightPixels + 32 * dm.ydpi / 160;
                */
                DisplayMetrics dm = new DisplayMetrics();
                getWindowManager().getDefaultDisplay().getMetrics(dm);
                Log.d("giada_density",  mButton.getWidth() + "/" + mButton.getHeight()+"  dm.density="+dm.density+"  dm.densityDpi="+dm.densityDpi);
                break;
            default:
                break;
        }
    }

}

?? ? ? ?3、运行的结果如下

? ? ? ?4、基准比例1.1625=186/160? ; 140=120*186/160? ;70=60*186/160? ;

参考文章

[Android] Android开发中dip,dpi,density,px等详解 - 简书

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-09-27 14:12:28  更:2021-09-27 14:14:08 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 20:40:30-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码