如何在Android中将动态图像设置为ViewFlipper?

如何在Android中将动态图像设置为ViewFlipper?

问题描述:

我正在做像这些它正在加载静态这些图像?如何在Android中将动态图像设置为ViewFlipper?

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(); 
      } 
} 

我正在使用ViewFlipper 3周的ImageView在xml文件

<?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> 

如何设置动态图像,这些ImageView的。通过使用单个ImageView。

在XML只需添加仅此,

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

不需要任何ImageViews包围。

现在在你的代码中做这个。

考虑到已存储的图像这样的阵列中,

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 
     }; 

现在,在您的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]); 
     } 

现在这个方法添加到您的活动,

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

就是这样。现在使用你的viewFlipper.showNext();viewFlipper.showPrevious(); 方法你可以显示你的动态图像。

+7

+1这对我很有帮助。 – Praveenkumar 2012-06-28 06:55:17

**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));