2013-12-08 3 views
1

이미지를 텍스트 및 tts와 함께 스 와이프하려고합니다. ViewPageAdapter를 사용했습니다.뷰 어댑터 클래스로 이미지 스 와이프

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


} 

위의 코드 강타 이미지 : 코드

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이다. 문제는 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; 
} 

도와주세요. 내가 제안

감사합니다, ITIN

+0

'animals.xml' 파일을 게시하십시오. 또 다른 요지는'setScaleType'을 원한다면'setImageResource'를 사용해야하고'setImageBackgroundResource'를 사용하지 말아야합니다. – Wenhui

+0

위의 xml 코드는 animal.xml입니다. – itin

+0

xml 파일에 ViewPager가 있으며 ImageView가 없습니다. 내가 놓친 게 있니? – Wenhui

답변

0

당신은 FragmentStatePagerAdapter 또는 FragmentPagerAdapter 중 하나를 사용합니다. 이러한 어댑터는 Fragment을 반환하는 getItem()을가집니다. Fragment에 대한 xml을 만들고 TextView

관련 문제