2012年4月29日日曜日

Android 2.1以上でGridLayoutを使う

準備
1. Support Packageをアップデートする。(2012/4/29現在の最新は revision 8)
2. <android-sdk install path>\extras\android\support\v7\にあるライブラリプロジェクト”gridlayout”をワークスペースにインポートする。
3. GridLayoutを使いたいプロジェクトに上記のライブラリを追加する。
   [プロジェクトを右クリック] - [Properties] - [Android] - [Library] - [Add]

使用方法
<GridLayout>の代わりに<android.support.v7.widget.GridLayout>と記述する。
因みに、<Space>も使えるようになる。
<Space>の代わりに<android.support.v7.widget.Space>と記述する。
使い方の詳細は
<android-sdk install path>\extras\android\support\v7\gridlayout\README.txt
を参照。

2012年4月21日土曜日

ボタンにアイコンを表示する

レイアウトファイルで指定する方法
drawableLeft
drawableRight
drawableTop
drawableBottom
でアイコンの位置と画像を指定。

drawablePadding
でアイコンと文字の間隔を指定。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center"
    android:orientation="vertical" >
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:drawableLeft="@drawable/ic_launcher"
        android:drawablePadding="10dp"
        android:text="drawableLeft" />
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:drawableRight="@drawable/ic_launcher"
        android:drawablePadding="10dp"
        android:text="drawableRight" />
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:drawableTop="@drawable/ic_launcher"
        android:drawablePadding="10dp"
        android:text="drawableTop" />
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:drawableBottom="@drawable/ic_launcher"
        android:drawablePadding="10dp"
        android:text="drawableBottom" />
</LinearLayout>
コードから指定する方法
setCompoundDrawablesWithIntrinsicBounds()
でアイコンの位置と画像を指定。
引数はリソースID または Drawableで指定。

setCompoundDrawablePadding()
でアイコンと文字の間隔を指定。
単位はpx。たぶん。。
        Button button = (Button) findViewById(R.id.Button);

        int left = R.drawable.ic_launcher;
        int top = 0;
        int right = 0;
        int bottom = 0;

        // Drawable left = getResources().getDrawable(R.drawable.ic_launcher);
        // Drawable top = null;
        // Drawable right = null;
        // Drawable bottom = null;

        button.setCompoundDrawablesWithIntrinsicBounds(left, top, right, bottom);
        button.setCompoundDrawablePadding(10);