0

TextView の幅をプログラムで 50 に設定する必要がある状況に陥っています。プログラムで幅を dp として設定する規定が見つからなかったため、この 50 を dp に変換する必要があります。Androidでピクセルをdpsに変換する方法を教えてください。


前もって感謝します。

4

1 に答える 1

2

以下は、私が何年も前に書いたいくつかのユーティリティ メソッドで、非常に頻繁に役立つようです。

/**
 * Converts pixel to dip.
 * 
 * @param pixel
 *            that should be converted.
 * @return the converted rounded dip.
 */
private int pixelToDip(int pixel) {
    DisplayMetrics displayMetrics = mContext.getResources()
            .getDisplayMetrics();
    return (int) ((pixel / displayMetrics.density) + 0.5);
}

/**
 * Converts dip to pixel.
 * 
 * @param dip
 *            that should be converted.
 * @return the converted rounded pixel.
 */
private int dipToPixel(int dip) {
    DisplayMetrics displayMetrics = mContext.getResources()
            .getDisplayMetrics();
    return (int) ((dip * displayMetrics.density) + 0.5);
}

Context のサブクラスでこれを実行するか、どこかから Context を取得する必要があります。ユーティリティ クラス コンストラクターで Context を渡し、それを に格納しmContextます。

于 2013-06-29T16:23:11.667 に答える