-3

Androidアクティビティに複数の画像を追加したかっただけです。そして、次と前のボタンを使用してその画像をナビゲートする必要があります.複数の画像を保存する方法とそれらをナビゲートする方法を示すコードを教えてください。ありがとうございました。

4

2 に答える 2

1

最も簡単な解決策の 1 つは、ドローアブル ID を配列に格納し、そのうちの 1 つを ImageView に表示することです。これを見てください。

public class MainActivity extends Activity implements View.OnClickListener {

    private static final int PREV_BUTTON_ID = 0;
    private static final int NEXT_BUTTON_ID = 1;

    private ImageView mImage;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        mImage = (ImageView) findViewById(R.id.image);
        mImage.setImageResource(getFirstImageId());

        Button prevButton = (Button) findViewById(R.id.btnPrev);
        prevButton.setId(PREV_BUTTON_ID);
        prevButton.setOnClickListener(this);

        Button nextButton = (Button) findViewById(R.id.btnNext);
        nextButton.setId(NEXT_BUTTON_ID);
        nextButton.setOnClickListener(this);
    }

    @Override
    public void onClick(View view) {
        switch (view.getId()) {
            case PREV_BUTTON_ID:
                mImage.setImageResource(getPrevImageId());
                break;
            case NEXT_BUTTON_ID:
                mImage.setImageResource(getNextImageId());
                break;
            default:
                break;
        }
    }

    private static final int[] sImages = { R.drawable.image1, R.drawable.image2, R.drawable.image3 };

    private int mCurrentImageId;

    private int getFirstImageId() {
        return sImages[mCurrentImageId];
    }

    private int getNextImageId() {
        mCurrentImageId++;

        if (mCurrentImageId > sImages.length - 1) {
            mCurrentImageId = sImages.length - 1;
        }

        return sImages[mCurrentImageId];
    }

    private int getPrevImageId() {
        mCurrentImageId--;

        if (mCurrentImageId < 0) {
            mCurrentImageId = 0;
        }

        return sImages[mCurrentImageId];
    }
}

そしてレイアウトは

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="horizontal"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent">
    <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Prev"
            android:id="@+id/btnPrev"
            android:layout_gravity="center_vertical"/>
    <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/image"
            android:layout_gravity="center"
            android:layout_weight="1"
            android:scaleType="center"
            android:focusableInTouchMode="false"/>
    <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Next"
            android:id="@+id/btnNext"
            android:layout_gravity="center"/>
</LinearLayout>
于 2013-03-30T13:35:45.960 に答える