如何获取当前显示图像的位置?

4
我希望能够展示前后两张图片,就像Windows图片和传真查看器一样。这是我的代码:
  package com.my.imagechange;

  import android.app.Activity;
  import android.os.Bundle;
  import android.view.View;
  import android.widget.Button;
  import android.widget.ImageButton;
  import android.widget.ImageView;

  public class ImageChangeDemo extends Activity 
  {
/** Called when the activity is first created. */

 //  private Gallery gallery;
 private ImageView imgView;
 int i=0;
 int j=6;
ImageButton btrt,btlt;
Button bt1,bt2;
 private Integer[] Imgid ={R.drawable.androidlogo,R.drawable.androids, R.drawable.cool, R.drawable.cupcake2009, R.drawable.donut2009, R.drawable.eclair2009};
 int imglength=Imgid.length;
 //System.out.println(imglength);
 @Override

public void onCreate(Bundle savedInstanceState)
{

    super.onCreate(savedInstanceState);

      setContentView(R.layout.imagechange);
      System.out.println(imglength);

      btlt=(ImageButton)findViewById(R.id.bt1);
      btrt=(ImageButton)findViewById(R.id.bt2);


         imgView = (ImageView)findViewById(R.id.ImageView01);
  imgView.setImageResource(Imgid[0]);
    btlt.setOnClickListener(new View.OnClickListener()
         {

            @Override
            public void onClick(View v)
            {

                int choice1=j--;
                switch(choice1)
                {
                case 5:imgView.setImageResource(Imgid[5]);
                        break;
                case 4:imgView.setImageResource(Imgid[4]);
                        break;
                case 3:imgView.setImageResource(Imgid[3]);
                        break;
                case 2:imgView.setImageResource(Imgid[2]);
                        break;
                case 1:imgView.setImageResource(Imgid[1]);
                        break;

                }

            }
        });
         btrt.setOnClickListener(new View.OnClickListener() 
         {  @SuppressWarnings("unused")
        @Override


             public void onClick(View v) 
            {
                 int choice2=i++;
             switch(choice2)
             {
             case 1:imgView.setImageResource(Imgid[1]);
                    break;
             case 2:imgView.setImageResource(Imgid[2]);
                    break;
             case 3:imgView.setImageResource(Imgid[3]);
                    break;
             case 4:imgView.setImageResource(Imgid[4]);
                    break;
             case 5:imgView.setImageResource(Imgid[5]);
                    break;
             }
            }   

    });

}}            

这个功能往前运行得很好,但当我想要点击后退时它就无法正常工作了。我犯了什么错误?有人可以告诉我吗?

提前感谢。

2个回答

3

请这样做更改

int choice1=--j;

编辑: 问题在于执行此代码后,int choice1=j--;中的choice1包含值6,而这个值并不在switch case中。


1

你好,现在代码已经很好地运行了。我的代码是:

package com.my.imagechange;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageButton;
import android.widget.ImageView;

public class ImageChange extends Activity
{

private Gallery gallery;
private ImageView imgView;
private ImageButton btlt,btrt;
private Integer[] Imgid= {
        R.drawable.androidlogo, R.drawable.androids, R.drawable.cool, R.drawable.cupcake2009, R.drawable.donut2009, R.drawable.eclair2009};
int imglength=Imgid.length;

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

    imgView = (ImageView)findViewById(R.id.ImageView01);    
    imgView.setImageResource(Imgid[0]);

    btlt=(ImageButton)findViewById(R.id.bt1);
    btrt=(ImageButton)findViewById(R.id.bt2);

    System.out.println("----->"+imglength +"----->");
     btlt.setOnClickListener(new View.OnClickListener() 
    {

        @Override
        public void onClick(View v)
        {

            // TODO Auto-generated method stub
            btrt.setEnabled(true);
            System.out.println("left button has been clicked");
            System.out.println("position: "+img_position);
            img_minus=--img_position;
            System.out.println("minus:"+img_minus);
             imgView.setImageResource(Imgid[img_minus]);
             //imgView.setBackgroundDrawable(getResources().getDrawable(id));
             if(img_minus==0)
             {
                btlt.setEnabled(false);
             }


        }
    });

     btrt.setOnClickListener(new View.OnClickListener()
     {
        @Override
        public void onClick(View v) 
        {

            // TODO Auto-generated method stub
            btlt.setEnabled(true);
            System.out.println("right button has been clicked");
            System.out.println("position: "+img_position);
            img_plus=++img_position;
            System.out.println("plus: "+img_plus);
             imgView.setImageResource(Imgid[img_plus]);
            if(img_plus==5)
             {
                btrt.setEnabled(false);
             }

        }
    });


} }

main.xml

  <?xml version="1.0" encoding="utf-8"?>
  <LinearLayout android:id="@+id/LinearLayout01"
android:layout_width="fill_parent" 
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:background="#ffffff">
    <ImageView android:id="@+id/ImageView01"
    android:layout_width="wrap_content"
     android:layout_height="wrap_content" 
     android:layout_gravity="center"
     android:background="@drawable/androidlogo"/>

    <RelativeLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:gravity="bottom"
  android:layout_gravity="fill_horizontal"
   >
   <ImageButton android:id="@+id/bt1"
  android:layout_width="wrap_content" 
  android:layout_height="wrap_content"
  android:src="@drawable/butleft"
  android:layout_alignParentLeft="true">
  </ImageButton>
  <ImageButton android:id="@+id/bt2" 
  android:src="@drawable/butright" 
  android:layout_height="wrap_content" 
  android:layout_width="wrap_content" 
  android:layout_alignParentRight="true">
  </ImageButton>
  </RelativeLayout>
  </LinearLayout>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接