1

ビューフリッパーを備えたギャラリーを含むアプリケーションを開発しようとしています。

ギャラリーにはすべての画像が表示されます。私がやりたいことは、ビュー フリッパーに表示される画像をギャラリーで強調表示することです。

現在、onClickで強調表示できますが、両方の間で通信することはできません。

次の方法を使用してみました

viewflipper.getDisplayedChild();

しかし、うまくいきません。

以下は私のコードです

public class SliderActivity extends Activity 
{
int mFlipping = 0 ;
public int currentimageindex=0;
Timer timer;
TimerTask task;
ImageView slidingimage;
android.widget.ViewFlipper flipper;
Gallery gallery;


private int[] IMAGE_IDS = 
{
    R.drawable.android0, R.drawable.android1,           R.drawable.android2,R.drawable.android3,R.drawable.android4
};



@Override
public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.mygame);
    flipper = (android.widget.ViewFlipper) findViewById(R.id.flipper1);

    for(int i=0;i<IMAGE_IDS.length;i++)
    {
    //  This will create dynamic image view and add them to ViewFlipper
        ImageView image = new ImageView(getApplicationContext());
        image.setBackgroundResource(IMAGE_IDS[i]);
        flipper.addView(image);
    }


    gallery=(Gallery)findViewById(R.id.gallery1);
    gallery.setAdapter(new ImageAdapter(this));

    if(mFlipping==0){
        /** Start Flipping */
        flipper.startFlipping();
        mFlipping=1;
        //mButton.setText(R.string.str_btn_stop);
    }
    else{
        /** Stop Flipping */
        flipper.stopFlipping();     
        mFlipping=0;
    //  mButton.setText(R.string.str_btn_start);
    }

}


public class ImageAdapter extends BaseAdapter 
{
       int mGalleryItemBackground;
       private Context mContext;

       public ImageAdapter(Context c) 
       {
           mContext = c;
           TypedArray a = obtainStyledAttributes(R.styleable.Theme);
           mGalleryItemBackground = a.getResourceId(
             R.styleable.Theme_android_galleryItemBackground,0);
           a.recycle();
       }

       public int getCount() 
       {
           return IMAGE_IDS.length;
       }

       public Object getItem(int position) 
       {

           return position;
       }

       public long getItemId(int position) 
       {
           return position;


       }

       public View getView(int position,View convertView, ViewGroup parent) 
       {
           ImageView i = new ImageView(mContext);
           i.setImageResource(IMAGE_IDS[position]);
           i.setLayoutParams(new Gallery.LayoutParams(150, 100));
           i.setScaleType(ImageView.ScaleType.FIT_XY);
           i.setBackgroundResource(mGalleryItemBackground);

           return i;
       }
    }

public void onClick(View v) {

    finish();
    android.os.Process.killProcess(android.os.Process.myPid());
  }

}

4

1 に答える 1

1

あなたの質問を理解したら...setOnItemSelectedListenerを使用する必要があると思います...

gallery.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

        @Override
        public void onItemSelected(AdapterView<?> adapter, View gallery,
                int position, long arg3) {          

            myPosition = position;
                           //tell your flipper something useful here using the current position of the gallery

        }

        @Override
        public void onNothingSelected(AdapterView<?> arg0) {
            // TODO Auto-generated method stub

        }
    });

そして、onItemSelectedコールバックからフリッパーに話しかけます。

于 2012-10-30T10:45:54.200 に答える