-1

Androidの初心者です..前と次のボタンを押すと前と次の画像が表示されるようなアプリを開発しました....

しかし、私は自分のアプリに問題がありました..ここでの問題は、アプリを実行すると、現在の画像ソースをIMAGE_IDS[0]として設定することでした...左矢印を押すとアプリが強制的に閉じられ、実際に左矢印を押すと配列 IMAGE_IDSの最後の画像を表示します ... 何かアイデアはありますか ??? ありがとう !

  public class MainActivity extends Activity  implements OnClickListener{

    ImageButton play;

    ImageButton ib_left_arrow, ib_right_arrow;  

    ImageView slidingimage;

    Animation rotateimage;  


    private int[] IMAGE_IDS = { R.drawable.image1, R.drawable.image2,
        R.drawable.image3};

    int imglength=IMAGE_IDS.length;

    int img_position;

    int img_minus;

    int img_plus;


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


    ib_left_arrow = (ImageButton) findViewById(R.id.iv_left_arrow);
    ib_right_arrow = (ImageButton) findViewById(R.id.iv_right_arrow);

    ib_left_arrow.setOnClickListener(this);
    ib_right_arrow.setOnClickListener(this);

    slidingimage = (ImageView) findViewById(R.id.ImageView3_Left);
    slidingimage.setImageResource(IMAGE_IDS[0]);

}



@Override
public void onClick(View v) {
    // TODO Auto-generated method stub


switch (v.getId()) {

case R.id.iv_left_arrow:


    img_minus=--img_position;

    slidingimage.setImageResource(IMAGE_IDS[img_minus% IMAGE_IDS.length]);

    rotateimage = AnimationUtils.loadAnimation(this,R.anim.slide_in_left);

    slidingimage.startAnimation(rotateimage);

    break;



case R.id.iv_right_arrow:

    img_plus=++img_position;

    slidingimage.setImageResource(IMAGE_IDS[img_plus% IMAGE_IDS.length]);

    rotateimage = AnimationUtils.loadAnimation(this,R.anim.slide_in_right);

    slidingimage.startAnimation(rotateimage);


    break;              


    }
  }


 }
4

3 に答える 3

0

この行のために起こっている

img_minus=--img_position;

そしてこの計算

img_plus % IMAGE_IDS.length

0の場合

img_minus=--img_position;//img_minus = --0 therefore img_minus = -1

//img_plus % IMAGE_IDS.length // -1 % 3 = 2
slidingimage.setImageResource(IMAGE_IDS[2]);//which is the last image.

したがって、左が押されたときにアクティビティを閉じたい場合は、

img_minus=--img_position;
if(img_minus < 0({
    finish();
    return;
}
于 2013-05-31T12:37:10.143 に答える