2015-04-08 3 views
1

Я успешно создал TouchImageView Inside Viewpager после этого, я попытался создать пользовательский TuochImageView с TextView снизу, используя одну строку в pageradapter, но не смог надуть ... Для этой цели я использую следующие коды создать TouchImageView в андроида в View пейджера >>>TouchImageView с TextView внизу

private class ImagePagerAdapter extends PagerAdapter { 

    @Override 
    public int getCount() { 
     return image_name_array.size(); 
    } 

    @Override 
    public boolean isViewFromObject(View view, Object object) { 
     return view == ((TouchImageView) object); 
    } 

    @Override 
    public Object instantiateItem(ViewGroup container, int position) { 
     Context context = getActivity().getApplicationContext(); 

     // define Image View 
     TouchImageView imageView = new TouchImageView(context); 
     imageView.setScaleType(ImageView.ScaleType.FIT_CENTER); 
     int padding = context.getResources().getDimensionPixelSize(R.dimen.padding_medium); 
     imageView.setPadding(padding, padding, padding, padding); 

     try { 
      // draw image using bitmap 
      Bitmap image_drawable = BitmapFactory.decodeStream(getActivity().getAssets().open(image_name_array.get(position))); 
      imageView.setImageDrawable(new BitmapDrawable(getActivity().getResources(), image_drawable)); 

     } catch (Exception e) { 
      e.printStackTrace(); 
     } 

     // imageView.setImageResource(mImages[position]); 
     ((ViewPager) container).addView(imageView, 0); 
     return imageView; 
    } 

    @Override 
    public void destroyItem(ViewGroup container, int position, Object object) { 
     ((ViewPager) container).removeView((ImageView) object); 
    } 
}  

я изменил следующее в методе instantiateItem для:

public Object instantiateItem(ViewGroup container, int position) { 

    TouchImageView imageDisplay; 
    TextView description; 
    inflater = (LayoutInflater) container.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View view = inflater.inflate(R.layout.details_images_caption, container, false); 
    imageDisplay = (TouchImageView) view.findViewById(R.id.gallery_image); 
    description = (TextView) view.findViewById(R.id.gallery_description); 
    //Log.e("image aptadapter =>", image_caption.get(position).toString()); 

    description.setText(image_caption.get(position)); 

    String picture = image_name_array.get(position); 


    Log.e("image DataADA =>", picture); 

    if (!TextUtils.isEmpty(picture)) { 
     try { 
      Bitmap image_drawable = BitmapFactory.decodeStream(context.getAssets().open(picture)); 
      imageDisplay.setImageDrawable(new BitmapDrawable(context.getResources(), image_drawable)); 

     } catch (Exception e) { 
     } 
    } 


    return view; 
} 
+0

Для этой цели вы используете TouchImageView в первую очередь внутри ViewPager, но тогда вы пытались с TouchImageView с TextView внутри этого ViewPager тогда была проблема ?? @Santosh Bhandary –

+0

Да, это проблема @sid_dude, я пытался сделать это, сделав один макет строки XML с I) TouchImageView и II) TextView с в RelativeLayout, я не мог найти правильный способ решения TouchImageView с textView как подпись не начинается ... –

+0

вы пытаетесь использовать адаптер пейджера вместо пейджера? –

ответ

0

Вы забыли добавить вид в контейнер. Добавьте это ((ViewPager) container).addView(view); в конец instantiateItem перед оператором возврата.

Ниже мой пример кода:

@Override 
    public View instantiateItem(ViewGroup container, int position) { 
     LayoutInflater inflater = (LayoutInflater) LoginActivity.getContext().getSystemService(Activity.LAYOUT_INFLATER_SERVICE); 
     View view = inflater.inflate(R.layout.fragment_screen_slide_page, container, false); 
     TouchImageView imageView = (TouchImageView) view.findViewById(R.id.imageView); 
     imageView.setImageResource(images1[position]); 
     TextView textView = (TextView) view.findViewById(R.id.screenSlideDescription); 
     textView.setText("" + position); 
     ((ViewPager) container).addView(view); 
     return view; 
    } 
Смежные вопросы