2012-01-07 16 views
7

Deseo desarrollar una aplicación de presentación de diapositivas en Android. Mi requisito es que tenía un conjunto de 20 (no una constante) imágenes en mi carpeta dibujable (no un almacenamiento externo). Ahora muestro este conjunto de imágenes con un cierto límite de tiempo de constatación. Tenía un código para la presentación de diapositivas para la muestra básica de Android en ese código cómo puedo establecer el intervalo de tiempo. Mi código es,¿Cómo puedo implementar SlideShow en Android?

SlideShow.java: 


    package com.fsp.slideview; 

import android.app.Activity; 
import android.content.Context; 
import android.os.Bundle; 
import android.view.View; 
import android.view.ViewGroup; 
import android.view.Window; 
import android.view.animation.AnimationUtils; 
import android.widget.AdapterView; 
import android.widget.BaseAdapter; 
import android.widget.Gallery; 
import android.widget.Gallery.LayoutParams; 
import android.widget.ImageSwitcher; 
import android.widget.ImageView; 
import android.widget.ViewSwitcher; 

public class SlideShow extends Activity implements 
     AdapterView.OnItemSelectedListener, ViewSwitcher.ViewFactory { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     requestWindowFeature(Window.FEATURE_NO_TITLE); 

     setContentView(R.layout.slide_show); 

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

     Gallery g = (Gallery) findViewById(R.id.gallery); 
     g.setAdapter(new ImageAdapter(this)); 
     g.setOnItemSelectedListener(this); 
    } 

    public void onItemSelected(AdapterView parent, View v, int position, long id) { 
     mSwitcher.setImageResource(mImageIds[position]); 
    } 

    public void onNothingSelected(AdapterView parent) { 
    } 

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

    private ImageSwitcher mSwitcher; 

    public class ImageAdapter extends BaseAdapter { 
     public ImageAdapter(Context c) { 
      mContext = c; 
     } 

     public int getCount() { 
      return mThumbIds.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(mThumbIds[position]); 
      i.setAdjustViewBounds(true); 
      i.setLayoutParams(new Gallery.LayoutParams(
        LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 
      i.setBackgroundResource(R.drawable.picture_frame); 
      return i; 
     } 

     private Context mContext; 

    } 

    private Integer[] mThumbIds = { R.drawable.img1, R.drawable.img2, 
      R.drawable.img2, R.drawable.img3, R.drawable.img4, R.drawable.img5, 
      R.drawable.img6, R.drawable.img7 }; 

    private Integer[] mImageIds = { R.drawable.img1, R.drawable.img1, 
      R.drawable.img2, R.drawable.img3, R.drawable.img4, R.drawable.img5, 
      R.drawable.img6, R.drawable.img7 }; 

} 

y el archivo XML es, slide_show.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 

    <ImageSwitcher 
     android:id="@+id/switcher" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" /> 

    <Gallery 
     android:id="@+id/gallery" 
     android:layout_width="fill_parent" 
     android:layout_height="60dp" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentLeft="true" 
     android:background="#55000000" 
     android:gravity="center_vertical" 
     android:spacing="16dp" /> 

</RelativeLayout> 
+0

hola mi amigo, he utilizado el código en este post también añadió el fragmento de código respondidos a su código, pero al ejecutar la aplicación me dio galería normal con barra deslizante de imagen en el botón de pantalla no (presentación de diapositivas de imágenes) que trato de obtener, ¿podría ayudarme, gracias – androidqq6

Respuesta

1
final Handler mHandler = new Handler(); 


    int delay = 1000; // delay for 1 sec. 

    int period = 8000; // repeat every 4 sec. 

    Timer timer = new Timer(); 

    timer.scheduleAtFixedRate(new TimerTask() { 

    public void run() { 

     mHandler.post(mUpdateResults); 

    } 

    }, delay, period); 

} 
+0

en qué lugar agrego este fragmento de código – Aerrow

+0

por favor póngalo en OnCreate – selvaiyyamperumal

+0

ponga este código también final Handler mHandle r = new Hander(); – selvaiyyamperumal

Cuestiones relacionadas