お使いのブラウザは、バージョンが古すぎます。

このサイトは、Internet Explore8・Internet Explore9には対応しておりません。
恐れ入りますが、お使いのブラウザをバージョンアップしていただきますよう宜しくお願いいたします。

【Android Tips】コードでマージン、パディング等をdp指定する

どーもー。ブンブン丸でーす。
今回もAndroidTipsです。
レイアウトを静的xmlで作成するのではなくプログラムで動的に作成するときのお話です。

追加したViewにマージンやパディング、幅、高さなどの指定をするときに
setMargins(10,10,10,10);と言った記述になりますが、これだとピクセル指定になってしまいます。
解像度が固定であればこれでも良いのですが、そうでない場合はレイアウトを見た時に、じぇじぇ、と発してしまうくらい悲しいことになります。
一つの解決策としてpxをdpに変換すれば良いのですが、今回は Dimension を使ってみます。

まずはXMLの作成

下記のようなxmlを作成し、適当な名前を付けて valusフォルダに保存します。

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <dimen name="width320">320dp</dimen>
    <dimen name="margin100">100dp</dimen>
</resources>

続いてコードに追加する

こんな感じで実装します。

	TextView textview = new TextView(this);
	textview.setText("Dimension Test");
	textview.setWidth(getResources().getDimensionPixelSize(R.dimen.width320));
	textview.setPadding(
	        	getResources().getDimensionPixelSize(R.dimen.margin100),
	        	getResources().getDimensionPixelSize(R.dimen.margin100),
	        	getResources().getDimensionPixelSize(R.dimen.margin100),
	        	getResources().getDimensionPixelSize(R.dimen.margin100)
	);

おしまい。

One Comment

コメントをどうぞ

メールアドレスは公開されません。* が付いている欄は必須項目です。


お気軽にお問い合わせください。

日本VTR実験室では、お仕事のご依頼、ブログ・コラムのご感想などを受け付けております。
アプリ開発・コンテンツ制作でお困りでしたら、お気軽にご相談ください。
ご連絡お待ちしております。

お問い合わせはこちらから

03-3541-1230

info@nvtrlab.jp

電話受付対応時間:平日AM9:30〜PM6:00