2012-01-18 13 views
12

Estoy haciendo como estas cargando estática estas imágenes?Cómo configurar imágenes dinámicas en ViewFlipper en android?

public class ArchiveGroup extends Activity { 
    Button btn; 
    ViewFlipper flip; 
    public void onCreate(Bundle savedInstanceState) { 
       super.onCreate(savedInstanceState); 
       setContentView(R.layout.next); 
       btn=(Button)findViewById(R.id.btn); 
       flip=(ViewFlipper)findViewById(R.id.flip); 

     } 
      public void ClickHandler(View v) 
      { 
      flip.showNext(); 
      } 
      public void ClickHandler1(View v) 
      { 
      Toast.makeText(this,"text",Toast.LENGTH_LONG).show(); 
      } 
} 

estoy usando tres imageview en ViewFlipper en xml archivo

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    > 
<TextView 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello" 
    /> 
    <Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Flip" 
    android:id="@+id/btn" 
    android:onClick="ClickHandler" 
    /> 
    <ViewFlipper 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:id="@+id/flip" 
    > 
    <ImageView 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:src="@drawable/ic_launcher" 
    /> 
    <ImageView 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:src="@drawable/ic_launcher" 
    /> 
    <ImageView 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:src="@drawable/ic_launcher" 
    /> 

    </ViewFlipper> 
</LinearLayout> 

Cómo configurar imágenes dinámicas a estos imageView. Al usar solo ImageView.

Respuesta

46

En el código XML sólo tiene que añadir sólo esto,

<ViewFlipper android:id="@+id/flipper" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content"> 
</ViewFlipper> 

no es necesario adjuntar a cualquier ImageViews.

Ahora haz esto en tu codificación.

Teniendo en cuenta que haya guardado sus imágenes en una matriz de este tipo,

int gallery_grid_Images[]={R.drawable.gallery_image_1,R.drawable.gallery_image_2,R.drawable.gallery_image_3, 
     R.drawable.gallery_image_4,R.drawable.gallery_image_5,R.drawable.gallery_image_6,R.drawable.gallery_image_7, 
     R.drawable.gallery_image_8,R.drawable.gallery_image_9,R.drawable.gallery_image_10 
     }; 

En su onCreate(),

viewFlipper = (ViewFlipper) findViewById(R.id.flipper); 
for(int i=0;i<gallery_grid_Images.length;i++) 
     { 
     // This will create dynamic image view and add them to ViewFlipper 
      setFlipperImage(gallery_grid_Images[i]); 
     } 

Y ahora añadir este método para su actividad,

private void setFlipperImage(int res) { 
    Log.i("Set Filpper Called", res+""); 
    ImageView image = new ImageView(getApplicationContext()); 
    image.setBackgroundResource(res); 
    viewFlipper.addView(image); 
} 

Eso es todo. Y ahora, usando sus métodos viewFlipper.showNext(); y viewFlipper.showPrevious(); , puede mostrar sus imágenes dinámicas.

+7

+1 esto es muy útil para mí. – Praveenkumar

0
**we can get images from url in vewfliper** 


URL urls = new URL("image url"); 
        Bitmap image = BitmapFactory.decodeStream(urls.openConnection().getInputStream()); 
        Data_holder.imge_bitmap.add(image); 
**the** 


private void setFlipperImage(Bitmap res) { 
     Log.i("Set Filpper Called", res+""); 
     ImageView image = new ImageView(getApplicationContext()); 
     image.setImageBitmap(res); 
     mViewFlipper.addView(image); 
u can call function 
setFlipperImage(Data_holder.imge_bitmap.get(i)); 
Cuestiones relacionadas