一尘不染

如何在程序内部将布局和文本大小设置为DP?

java

基本上,我在XML内有此功能,但是我必须在代码内重新创建它。我该怎么做?

<EditText 
        android:layout_width="140dp"
        android:layout_height="20dp"
        android:background="@drawable/input_bg01"
        android:textSize="10dp"
        android:gravity="center"
        android:text="111-222-333     FOOO" />

我可以使用它来设置文本大小,但是layout_width和height呢?

edTxt.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 10);

有没有办法告诉代码使用DP单元而不是像素?还是将DP转换为像素的转换功能?


阅读 235

收藏
2020-12-03

共1个答案

一尘不染

提取:

DisplayMetrics metrics = getContext().getResources().getDisplayMetrics();
float dp = 20f;
float fpixels = metrics.density * dp;
int pixels = (int) (fpixels + 0.5f);
2020-12-03