[解決済み] ソースコードからres/values/dimension.xmlからディメンション値を読み込む。
2022-03-27 19:26:28
質問
値をそのまま読み込みたいのですが。
私は、2つの
dimension.xml
ファイル、1つは
/res/values/dimension.xml
と、もうひとつは
/res/values-sw360dp/dimension.xml
.
ソースコードから、次のようなことをやってみたい。
getResources().getDimension(R.dimen.tutorial_cross_marginTop);
これは動作しますが、取得する値は画面密度係数(hdpiは1.5、xhdpiは2.0など)を掛け合わせたものになります。
また、次のようなこともやってみた。
getResources().getString(R.dimen.tutorial_cross_marginTop);
これは原理的にはうまくいくのですが、末尾が "dip" という文字列になってしまいます...。
解決方法は?
dimens.xml には
<dimen name="test">48dp</dimen>
コード内 もし私が
int valueInPixels = (int) getResources().getDimension(R.dimen.test)
これは、ドキュメントにあるように、現在の携帯電話の密度(私の場合は48dp×1.5)を乗算した72を返します。
ドキュメントにある通りです。
<ブロッククオート特定のリソースIDに対応する次元を取得する。単位変換 は、リソースに関連付けられた現在の DisplayMetrics に基づいています。
xmlのように正確なdp値が必要な場合は、DisplayMetricsの密度で割ればいいわけです。
int dp = (int) (getResources().getDimension(R.dimen.test) / getResources().getDisplayMetrics().density);
dpは現在48です。
関連
-
adb シェルがデバイスのオフラインを求めるプロンプトを表示する
-
[android studio]com.android.ide.common.process.ProcessException: aaptの実行に失敗しました
-
AndroidStudio reports Could not resolve all artifacts for configuration ':app:classpath'.
-
AndroidがMainActivityが包含クラスでないというエラーを報告する
-
Androidで発生した問題、解決策とヒント
-
アンドロイドスタジオでJunitのエラー問題を解決する
-
Androidプロセス生存のためのソリューション
-
Android カスタムスピナーコントロールのドロップダウン・ボックスの実装
-
android.content.ActivityNotFoundException を解決します。Intent問題を処理するActivityが見つからない
-
[解決済み] APKファイルからソースコードを取得する方法はありますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
AAPT2エラーについて:詳しくはログをご確認ください。
-
java.lang.NullPointerException: NULLオブジェクト参照で仮想メソッド......を呼び出そうとしました。
-
AndroidエミュレーターのADBサーバーがACKしない問題
-
AndroidStudio reports Could not resolve all artifacts for configuration ':app:classpath'.
-
RuntimeException: アクティビティを開始できません ComponentInfo solution
-
を作ってください。*** makeするルールがない エラーの原因、分析、解決策
-
telnet'が内部コマンドまたは外部コマンドとして認識されない 解決方法
-
ライブラリをモジュールとしてインポートする際にエラーが発生しました。Error:A problem occurred configuring project ':library'.
-
view.getRootView()の本当の意味とテストについて
-
android studioが新しいプロジェクトを作成しますが、プロジェクトの同期に成功するまでデザインエディタが使用できません。