テクパー2020
テクニカルヘルパー


アンドロイドアプリ開発 

◆ イメージボタンの配置
・ ボタンにイメージを設定します

1.新規プロジェクトで 「 ToolsButImg 」 を新規に作成します

1)ファイル(F) → 新規(N) → プロジェクト(P)

2)Android の Android プロジェクト を選択し、[次へ(N)]ボタン をクリック
・プロジェクト名に 「 ToolsButImg 」 を入力
・ビルド・ターゲットの □ Android 2.2 を チェック (最新のバージョン)
・アプリケーション名に 「 ToolsButImg 」 を入力
・パッケージ名に 「 任意のドメイン名 」 を入力 (ドメイン名をパッケージ名に利用)
・□ Create Activityがチェック状態で、名称に 「 ToolsButImg 」 を入力
・[完了]ボタン をクリック

2.画像(イメージ)を配置します

1)resのフォルダー上で右クリック → 新規(W) → フォルダー
・フォルダー名(N)に 「 drawable 」 を入力
・[完了]ボタン をクリック

2)作成した drawable のフォルダー上で右クリック → インポート
・一般 → ファイル・システム
・[次へ]ボタン をクリック
・次のディレクトリーから(Y)に画像(イメージ)があるフォルダーを指定 (参照ボタンで指定)
・取得する画像(イメージ)をチェック
・[完了]ボタン をクリック

(プロジェクトの構成)


3.「 ToolsButImg 」 を書き換え
package com.proto.toolsbutimg;

import android.app.Activity;
import android.os.Bundle;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.widget.ImageButton;
import android.widget.TextView;
import android.widget.LinearLayout;
import android.view.View;
//import android.view.Window;

public class ToolsButImg extends Activity implements View.OnClickListener {

    private final static int MatchParent=LinearLayout.LayoutParams.MATCH_PARENT;
    private final static int WrapContent=LinearLayout.LayoutParams.WRAP_CONTENT;

    // ボタンのイメージ(画像)定義
    Bitmap imgB0;
    Bitmap imgB1;
    Bitmap imgB2;
    Bitmap imgB3;
    
    // イメージボタンの生成
    private ImageButton makeImageButton(
              ImageButton imageButton,Bitmap image,String tag,String params) {
        imageButton.setTag(tag);
        imageButton.setImageBitmap(image);
        imageButton.setOnClickListener(this); 
        if (params == "MATCH") {
            imageButton.setLayoutParams(
                new LinearLayout.LayoutParams(MatchParent,WrapContent));
        } else {
            imageButton.setLayoutParams(
                new LinearLayout.LayoutParams(WrapContent,WrapContent));
        }
        return imageButton;
    }

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // setContentView(R.layout.main);書き換え

        // ウィンドウタイトルの非表示
        // requestWindowFeature(Window.FEATURE_NO_TITLE);

        // レイアウトの生成
        LinearLayout layout=new LinearLayout(this);
        layout.setBackgroundColor(Color.WHITE);// 背景色の指定
        layout.setOrientation(LinearLayout.VERTICAL);// HORIZONTAL, VERTICAL 
        setContentView(layout);

        // テキストの生成
        TextView txtView = new TextView(this);
        txtView.setTextColor(Color.MAGENTA);
        txtView.setTextSize(16f);
        txtView.setText("イメージボタン操作のチェック");
        layout.addView(txtView,
                       new LinearLayout.LayoutParams(MatchParent,WrapContent));

        // イメージ(画像)の取り込み
        //Bitmap image;
        imgB0=BitmapFactory.decodeResource(getResources(),
                                           R.drawable.bt_img_circle_go);
        imgB1=BitmapFactory.decodeResource(getResources(),
                                           R.drawable.bt_img_square_go);
        imgB2=BitmapFactory.decodeResource(getResources(),
                                           R.drawable.bt_img_circle_back);
        imgB3=BitmapFactory.decodeResource(getResources(),
                                           R.drawable.bt_img_square_back);

        // イメージボタン定義
        ImageButton imgButton;

        // イメージボタンの生成
        /* (layout.addView(button,
                new LinearLayout.LayoutParams(WRAP_CONTENT,WRAP_CONTENT));) */
        imgButton=new ImageButton(this);
        layout.addView(makeImageButton(imgButton,imgB0,"0","WRAP"));
        imgButton=new ImageButton(this);
        layout.addView(makeImageButton(imgButton,imgB1,"1","MATCH"));

    }

    @Override
    // イメージボタンクリックの処理
    public void onClick(View view) {

        // タグ情報の取得
        int tag=Integer.parseInt((String)view.getTag());

        // イメージボタン情報の取得
        ImageButton ib = (ImageButton)view;

        if (tag==0) {
            ib.setTag("2");
            ib.setImageBitmap(imgB2);
        }else if (tag==1) {
            ib.setTag("3");
            ib.setImageBitmap(imgB3);
        }else if (tag==2) {
            ib.setTag("0");
            ib.setImageBitmap(imgB0);
        }else if (tag==3) {
            ib.setTag("1");
            ib.setImageBitmap(imgB1);
        }

    }

}


・機能の説明
public class ToolsButImg extends Activity implements View.OnClickListener {

implements View.OnClickListener の追加
android.view.View.OnClickListener のOnClickListenerインターフェース

// クリックリスナーの処理(オーバーライド)
public abstract void onClick (View v) 
android.widget.ImageButton  のImageButtonクラスの生成

public ImageButton (Context context) 
android.widget.ImageView  のImageViewクラスで指定

// イメージの指定(ビットマップ・イメージ)
public void setImageBitmap (Bitmap bm) 
android.view.View のViewクラスで指定

// タブの指定(タグ情報)
public void setTag (Object tag) 

// クリック処理の指定(実行のコールバック)
public void setOnClickListener (View.OnClickListener l) 

// レイアウト(配置)の指定(レイアウト情報)
public void setLayoutParams (ViewGroup.LayoutParams params) 
public LinearLayout (Context context) 

// レイアウトの向きの指定(HORIZONTAL :水平, VERTICAL:垂直)
  {デフォルトは水平}
public void setOrientation (int orientation) 
android.graphics.BitmapFactory のBitmapFactoryクラスで指定

// イメージ(画像)の指定(イメージ・オブジェクト,イメージID)
public static Bitmap decodeResource (Resources res, int id) 
android.content.ContextWrapper のContextWrapperクラスで処理

// イメージ・オブジェクトのインスタンス(初期化)
public Resources getResources () 
android.view.View.ViewGroup のViewGroupの指定

// ビュー(画面)へ項目の追加(ビュー項目)
public void addView (View child) 
android.view.View.OnClickListener のOnClickListenerインターフェース

// クリックリスナーの処理(オーバーライド)
public abstract void onClick (View v) 


4.プロジェクトの実行(実行構成の作成は、「プロジェクトの新規作成」を参照)
1)実行(R) → 実行(R)


(上の○→ボタンをクリック)


(下の□→ボタンをクリック)


(上の○←ボタンをクリック)


Copyright (C) 2010 プログラミングのテクニックをあなたに!!(リトル・ヘルパー) All Rights Reserved.