Android

【Android】これは楽ですね!ButterKnifeライブラリのサンプル①

今までは、あまり気にもしていなかったのですが、
ButterKnifeに少し興味があったので、使ってみました。

このサンプルは、TextViewとImageViewを使って文字の大きさ、表示する文字、画像表示、クリック処理をButterKnifeで書いていきます。

Git:
https://github.com/JakeWharton/butterknife

まずは、導入から
build.gradle(Module.app)

apply plugin: 'com.android.application'
apply plugin: 'com.jakewharton.butterknife'

android {
    ...
    }
    buildTypes {
       ...
    }
}

dependencies {
    ...
    compile 'com.jakewharton:butterknife:8.6.0'
    annotationProcessor 'com.jakewharton:butterknife-compiler:8.6.0'
}

apply plugin: ‘com.android.library’①
apply plugin: ‘com.jakewharton.butterknife’②
Gitの説明文では、上記2つを追加と書かれていますが、
②の行のみにしてください。

build.gradle(Project)
ここは下記行を追加するだけです。

buildscript {
    ...
    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.1'
        classpath 'com.jakewharton:butterknife-gradle-plugin:8.6.0'
    }
}


activity_main.xml

<RelativeLayout android:id="@+id/main_layout"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/white">

    <TextView
        android:id="@+id/text_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        android:textColor="@android:color/black"/>

    <ImageView
        android:id="@+id/image_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        />

</RelativeLayout>

MainActivity.java

    @BindView(R.id.text_view)TextView textView;
    @BindView(R.id.image_view)ImageView imageView;

    @BindString(R.string.text)String text;
    @BindDimen(R.dimen.textSize)float textSize;
    @BindDrawable(R.drawable.ic_launcher)Drawable drawable;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ButterKnife.bind(this);

        textView.setText(text);
        textView.setTextSize(textSize);
        imageView.setImageDrawable(drawable);
    }

    @OnClick(R.id.image_view)
    public void ImageClick() {
        Intent intent = new Intent(MainActivity.this, Main2Activity.class);
        startActivity(intent);
    }

@BindView: Layoutで設定したIDを設定します。
@BindString: strings.xmlのIDを設定します。
@BindDimen: dimens.xmlのIDを設定します。
@BindDrawable: drawableのIDを設定します。

ButterKnife.bind(this);
上記コードは初期化の際に必ず呼びます。

@OnClick: Click処理をするIDを設定します。

サンプルのスクリーンショットです。

Androidのアイコンを押すと下の画像に遷移します。

次は、FragmentでButterKnifeを使ってみようと思います。
以上です。

コメントを残す

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