fullscreen ImageSwitcher ohne gallery in Android

Ich versuche, eine Anwendung zu erstellen, in android, in einer meiner Tätigkeiten, die ich wanna show full screen-Bilder und machen Sie schieben Sie Links und rechts mit dem finger auf die Bilder.

Ich habe versucht, basic-Galerie-Ansicht und Bild-Switcher, aber ich konnte nicht mit den touch-event, um eine Gleit-Effekt wie im custom-android-Galerie, aber ohne Vorschaubilder.

Hier ist meine simple image switcher xml-und activity-Klasse. Ich wäre sehr dankbar, wenn jemand zeigt mir ein Weg oder bearbeitet meinen code unten.
Vielen Dank im Voraus...

layout-xml:

 <?xml version="1.0" encoding="utf-8"?>
    <ImageSwitcher 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/imageSwitcher"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:onClick="imageClick"
    android:src="@drawable/ic_launcher"
    android:keepScreenOn="true">
    </ImageSwitcher>

code :

public class GalleryActivity extends Activity implements ViewFactory {

    private ImageSwitcher imageSwitcher ;


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

         imageSwitcher = (ImageSwitcher) findViewById(R.id.imageSwitcher);
         imageSwitcher.setFactory(this);
         imageSwitcher.setInAnimation(AnimationUtils.loadAnimation(this, android.R.anim.fade_in));
         imageSwitcher.setOutAnimation(AnimationUtils.loadAnimation(this, android.R.anim.fade_out));

         imageSwitcher.setImageResource(R.drawable.menu);

         imageSwitcher.setOnTouchListener(new OnTouchListener() {

            public boolean onTouch(View v, MotionEvent event) {
                findViewById(R.drawable.menu);
                imageSwitcher.addView((ImageSwitcher) findViewById(R.drawable.etkinlik));
                imageSwitcher.showNext();

                return false;
            }
        });
    }  
        public View makeView() {  
        ImageView iView = new ImageView(this);
        iView.setScaleType(ImageView.ScaleType.FIT_CENTER);
        iView.setLayoutParams(new
                    ImageSwitcher.LayoutParams(
                                LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT));
        iView.setBackgroundColor(0xFF000000);
        return iView;
    }
}  

Nach der Bearbeitung ein bisschen @imran khan 's-Lösung , hier ist der code, der funktioniert ganz gut.

LÖSUNG:

ImageSwitcher imageSwitcher ;

Integer[] imageList = {
        R.drawable.gallery,
        R.drawable.menu,
        R.drawable.promotion,
        R.drawable.info,
        R.drawable.activities       
};

int curIndex=0;
int downX,upX;

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

     imageSwitcher = (ImageSwitcher) findViewById(R.id.imageSwitcher);
     imageSwitcher.setFactory(this);
     imageSwitcher.setInAnimation(AnimationUtils.loadAnimation(this,android.R.anim.fade_in));
     imageSwitcher.setOutAnimation(AnimationUtils.loadAnimation(this,android.R.anim.fade_out));

     imageSwitcher.setImageResource(imageList[curIndex]);
     imageSwitcher.setOnTouchListener(new OnTouchListener() {
     @Override
     public boolean onTouch(View v, MotionEvent event) {

         if (event.getAction() == MotionEvent.ACTION_DOWN) {
             downX = (int) event.getX(); 
             Log.i("event.getX()", " downX " + downX);
             return true;
         } 

         else if (event.getAction() == MotionEvent.ACTION_UP) {
             upX = (int) event.getX(); 
             Log.i("event.getX()", " upX " + downX);
             if (upX - downX > 100) {

                 //curIndex  current image index in array viewed by user
                 curIndex--;
                 if (curIndex < 0) {
                     curIndex = imageList.length-1;
                 }

                 imageSwitcher.setInAnimation(AnimationUtils.loadAnimation(GalleryActivity.this,R.anim.slide_in_left));
                 imageSwitcher.setOutAnimation(AnimationUtils.loadAnimation(GalleryActivity.this,R.anim.slide_out_right));

                 imageSwitcher.setImageResource(imageList[curIndex]);
                 //GalleryActivity.this.setTitle(curIndex);
             } 

             else if (downX - upX > -100) {

                 curIndex++;
                 if (curIndex > 4) {
                     curIndex = 0;
                 }

                 imageSwitcher.setInAnimation(AnimationUtils.loadAnimation(GalleryActivity.this,R.anim.slide_in_right));
                 imageSwitcher.setOutAnimation(AnimationUtils.loadAnimation(GalleryActivity.this,R.anim.slide_out_left));

                 imageSwitcher.setImageResource(imageList[curIndex]);
                 //GalleryActivity.this.setTitle(curIndex);
             }
                 return true;
             }
             return false;
         }
     });
}
@Override
public View makeView() {
    ImageView i = new ImageView(this);  
    i.setScaleType(ImageView.ScaleType.FIT_CENTER);
    return i;
}
was passiert, wenn u sind in der dieser code ausgeführt?
Ich sehe gerade, das Bild auf dem ganzen Bildschirm und es beendet sich von der Berührung.Ich habe eine Lösung für dieses, aber ich habe ein weiteres Problem, Sie können Sie sich ansehen, wenn Sie möchte.
ok osayilgan siehe meine Antwort und versuchen Sie es auf ImageSwitcher onTouch.ich hoffe, hilfreich
Danke für die Kommentare, vität für die späte Antwort, die ich einfach nicht sehen. Was ich möchte, ist genau ein Bild auf dem ganzen Bildschirm Ansicht und Schiebetüren zwischen den Bildern mit dem finger nach Links und rechts wie in Bild der Galerie in android OS.Ich wäre wirklich appriceated wenn Sie eine Lösung.
Sie brauchen, um dieses "Image Switcher" - Komponente in Ihren zugehörigen XML-Datei.

InformationsquelleAutor osayilgan | 2012-04-06

Schreibe einen Kommentar