2013-12-08 1 views
1

Я пытаюсь пронести изображения вместе со своим текстом и tts. Я использовал ViewPageAdapter. КодексПроведите изображение с видом класса адаптера

public class ViewPagerAdapter extends PagerAdapter{ 

Activity activity; 
int imageArray[]; 
String[] arrToDisplay; 

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

    } 

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


} 

XML:

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:gravity="left" 
    android:orientation="vertical" > 

    <!--ImageView 
     android:id="@+id/imageView1" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:scaleType="fitXY" 
     android:src="@drawable/a_elephant" /--> 

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

</LinearLayout> 

Main.java

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

      ViewPagerAdapter adapter = new ViewPagerAdapter(this, arrAnimals1, arrAnimals); 
    ViewPager myPager = (ViewPager) findViewById(R.id.myfivepanelpager); 
    myPager.setAdapter(adapter); 
    myPager.setCurrentItem(0); 


} 

Приведенный выше код Swiping изображения правильно. Проблема в том, что я хочу показать текст вместе с tts. Я пробовал этот код для отображения текста в классе адаптера, но он не работает:

public Object instantiateItem(View collection, int position) { 
    LayoutInflater inflater = (LayoutInflater)collection.getContext().getSystemService 
      (Context.LAYOUT_INFLATER_SERVICE); 
    View layout = inflater.inflate(R.layout.animals, null); 

    ImageView im=(ImageView) layout.findViewById(R.id.imageView1); 
    im.setBackgroundResource(imageArray[position]); 
    TextView dsc=(TextView) layout.findViewById(R.id.txtObjName); 
    dsc.setText("asdfasdf"); 
    ((ViewPager) collection).addView(layout, 0); 
    return layout; 
} 

Помогите.

Спасибо, тир

+0

Опубликуйте свой файл «animals.xml». Другой момент, если вы хотите 'setScaleType', вы должны использовать' setImageResource', не используйте 'setImageBackgroundResource'. – Wenhui

+0

выше xml-код от animal.xml – itin

+0

Я вижу, что в файле xml есть ViewPager, и нет ImageView. Я что-то упускаю? – Wenhui

ответ

0

Я хотел бы предложить вам использовать либо FragmentStatePagerAdapter или FragmentPagerAdapter. Эти адаптеры имеют getItem(), который возвращает Fragment; вы можете создать xml для Fragment, который содержит ImageView и TextView