忍者ブログ
やったことの記録 主にlinuxとかperlとか
プロフィール
HN:
隠居SE
性別:
非公開
カテゴリー
P R
ブログ内検索
忍者カウンター
[6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

更新が空きましたが、最近はAndroidのアプリ開発にハマってます。

言語なんて2~3個知ってれば後はなんとかなるもんですが、
お作法とかライブラリとか用語については経験してないとどうにもならないので、
そう言う部分にはよくつまづきます( ̄∇ ̄*)ゞテヘッ

と言うわけで、今回は表題のとおりです。

LinearLayout使って適当に部品を配置してると困らないのですが、
どうやらViewのネストとLinearLayoutは重いらしく、
カスタムビューも作って沢山Viewを配置したい私としては、
LinearLayout根絶に走ったわけです。

そうすると、match_parentやwrap_contentに頼れず、
いくつものViewに同じ値を持たせる必要が出てきました。
一発決め打ちで済むのであれば力技で入力するか部品コピペでもなんとかなりますが、
調整とかが必要になると、修正作業は苦行でしかなくなります。

なので、dp値をリソースとして定義したいと普通に思ったのですが、
ググっても何故かなかなか見つかりませんでした。
でも、リソースファイルをよくよく調べてみると、ちゃんとありました。

res/values/dimens.xml
<!--?xml version="1.0" encoding="utf-8"?-->
<resources>
    <!-- Default screen margins, per the Android Design guidelines. -->
    <dimen name="activity_horizontal_margin">16dp</dimen>
    <dimen name="activity_vertical_margin">16dp</dimen>
</resources>

ここに追記すれば、普通に使えるようです。
バンザーイ°˖☆◝(⁰▿⁰)◜☆˖°


レイアウトでの使い方はこんな感じで☆
android:layout_marginTop="@dimen/activity_horizontal_margin"

プログラムで使う時はこんな感じ。 プログラムで参照するとdp値がpx値に変換されているので、onCreate上でViewの大きさを取得したい時なんかは、工夫せずに済むので便利です。
Resources res = getResources();
float margin = res.getDimension(R.dimen.activity_horizontal_margin);

#AndroidStudio #resource
PR
Powerd by NINJAブログ / Designed by SUSH
Copyright © 隠居SEの備忘録 All Rights Reserved.
忍者ブログ/[PR]