如何在View Pager中加载数组位图显示?

时间:2015-05-12 05:56:04

标签: android bitmap

我的Activity中有位图数组。我想将该数组位图加载到ViewPager。我对这个概念没有任何想法。

1 个答案:

答案 0 :(得分:4)

check this link 你只需要从drawable更改为bitmap .. 这是代码..

步骤1)创建新项目后。将main.xml更改为如下所示,以便其中包含一个Viewpager小部件。

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

    <android.support.v4.view.ViewPager
        android:id="@+id/myfivepanelpager"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</LinearLayout>

步骤2)现在我们主要关注的是将数据绑定到Viewpager中,以便您可以轻松滑动。 PagerAdapter将数据绑定到Viewpager,并在需要时动态创建视图。在PagerAdapter中,我们在使用结束后立即将其删除,以便我们可以避免内存浪费。因此,创建一个新类并在其中粘贴代码。

package com.horizontalscrollviewwithpageindicator;
import android.app.Activity;
import android.os.Parcelable;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.widget.ImageView;
import android.widget.ImageView.ScaleType;

public class ViewPagerAdapter extends PagerAdapter {

 Activity activity;
 int imageArray[];

 public ViewPagerAdapter(Activity act, int[] imgArra) {
  imageArray = imgArra;
  activity = act;
 }

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

 public Object instantiateItem(View collection, int position) {
  ImageView view = new ImageView(activity);
  view.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
    LayoutParams.FILL_PARENT));
  view.setScaleType(ScaleType.FIT_XY);
  view.setBackgroundResource(imageArray[position]);
  ((ViewPager) collection).addView(view, 0);
  return view;
 }

 @Override
 public void destroyItem(View arg0, int arg1, Object arg2) {
  ((ViewPager) arg0).removeView((View) arg2);
 }

 @Override
 public boolean isViewFromObject(View arg0, Object arg1) {
  return arg0 == ((View) arg1);
 }

 @Override
 public Parcelable saveState() {
  return null;
 }
}

步骤3)这是最后一步,Viewpager完成。和PagerAdapter一样,我创建了一个ImageView来显示为Viewpager的子节点,因此我们需要一个图像数组来显示图像。我的drawable文件夹中有图像。我创建了一个这样的数组

private int imageArra[] = { R.drawable.antartica1, R.drawable.antartica2,
       R.drawable.antartica3, R.drawable.antartica4,
       R.drawable.antartica5, R.drawable.antartica6,
       R.drawable.antartica7, R.drawable.antartica8 };

现在我们只需要将PagerAdapter附加到android Viewpager。因此,我们将主要活动代码更改为以下---

package com.horizontalscrollviewwithpageindicator;
import android.app.Activity;
import android.os.Bundle;
import android.support.v4.view.ViewPager;
import android.view.Menu;
    public class PageIndicatorActivity extends Activity {

     @Override
     public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      ViewPagerAdapter adapter = new ViewPagerAdapter(this, imageArra);
      ViewPager myPager = (ViewPager) findViewById(R.id.myfivepanelpager);
      myPager.setAdapter(adapter);
      myPager.setCurrentItem(0);
     }

     private int imageArra[] = { R.drawable.antartica1, R.drawable.antartica2,
       R.drawable.antartica3, R.drawable.antartica4,
       R.drawable.antartica5, R.drawable.antartica6,
       R.drawable.antartica7, R.drawable.antartica8 };

     @Override
     public boolean onCreateOptionsMenu(Menu menu) {
      getMenuInflater().inflate(R.menu.activity_main, menu);
      return true;
     }

    }