2

Android アプリケーションのカスタム整数ボタン状態を作成して使用する方法を理解しようとしています。ブール値(可能な値は2つだけ)のボタン状態を作成するためのこのリンクを見つけましたが、うまく機能しているようです。しかし、複数の状態の可能性を持ちたい場合があり、それらを整数で指定したいと考えています。

これが私が今していることです:

import android.content.Context;
import android.util.Log;
import android.widget.ImageView;

public class MultiStateImageView extends ImageView{
private final static String LOG_TAG = MultiStateImageView.class.getSimpleName();

private static final int[] MULTI_STATE = {R.attr.multi_state};

private final int numStates;
private int state;

public MultiStateImageView(Context context, int numStates){
    super(context);
    this.numStates = numStates;
    state = 0;
}

public void setState(int state){
    if(state >= numStates){
        Log.e(LOG_TAG, "can't set a state higher than the number available!");
    }
    this.state = state;
    refreshDrawableState();
}

@Override
public int[] onCreateDrawableState(int extraSpace){
    final int[] drawableState = super.onCreateDrawableState(extraSpace + 2);
    mergeDrawableStates(drawableState, MULTI_STATE);
    return drawableState;
}

問題は、明らかに状態フィールドをまったく使用していないことです。整数状態に対してこれを行うにはどうすればよいですか?

4

1 に答える 1

1

これはお勧めできないと思うので、サポートされていません。私の場合、idle=0、walk=1、run=2 のボタンの数値を取る 1 つの状態を試しました。これをブール値として 3 つの個別の状態に変更しました。私の例では、1 つの状態が true である可能性があるため、それらの組み合わせが true である場合、1 つが状態としてランダムに選択されます。ただし、数値アプローチのように、複数の真の状態を許可せずにこれを行う方法を見つけることができれば幸いです。

于 2013-09-16T15:14:44.060 に答える