TextView の幅をプログラムで 50 に設定する必要がある状況に陥っています。プログラムで幅を dp として設定する規定が見つからなかったため、この 50 を dp に変換する必要があります。Androidでピクセルをdpsに変換する方法を教えてください。
前もって感謝します。
TextView の幅をプログラムで 50 に設定する必要がある状況に陥っています。プログラムで幅を dp として設定する規定が見つからなかったため、この 50 を dp に変換する必要があります。Androidでピクセルをdpsに変換する方法を教えてください。
前もって感謝します。
以下は、私が何年も前に書いたいくつかのユーティリティ メソッドで、非常に頻繁に役立つようです。
/**
* 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
ます。