月別アーカイブ: 2014年2月

【Android】 レイヤーリストは便利すぎる。。。

画像やカラー等を重ね合わせることて表示することができるのが、
レイヤーリスト。

layer_list_sample.xml

< xml version="1.0" encoding="utf-8" >
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
        android:drawable="@drawable/droid"
        android:right="10dp"/>
</layer-list>

上記layer_list_sampleを背景に設定すれば、
droidの画像は右に10dpマージンが入って表示される。

画像だけにマージンが付けたい時等のテクニックとして使えそう。。。

【Android】InflateしたViewのLayoutParams

こんなレイアウトがあるとする。
include.xml

< xml version="1.0" encoding="utf-8" >
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent">

  <Button
    android:text="ラベル"
    android:id="@+id/btn_include"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>
</LinearLayout>

JavaコードからInflatesすると、、、

LayoutInflater inflater = (LayoutInflater)getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View inflateView = inflater.inflate(R.layout.include, null);

この時、inflateViewに付与されているLayoutParamsは、nullになる。

恐らくLayoutParamsは親のViewGroupのLayoutParamsが付与されなければならないので、
Inflateされた時点で親のViewGroupは存在しないためかな?