У меня есть viewpager в моем main_layout. Пейджер представления содержит только ImageView, обернутый RelativeLayoutКак динамически добавлять изображение в viewpager, содержащий изображение?
То, что я хотел бы сделать, - это когда пользователь нажимает на кнопку, он добавит изображение в этот конкретный просмотрщик.
Я нашел этот ответ здесь, в stackoverflow (который, я думаю, имеет отношение к моему вопросу), однако я полностью потерял этот код.
Dynamically Adding View to viewpager
До сих пор это мой код:
MainActivity.Java
private PagerAdapter pAdapter;
private ViewPager photoPager;
...
pAdapter = new GalleryPagerAdapter(getApplicationContext());
photoPager.setAdapter(pAdapter);
GalleryPagerAdapter.java
public class GalleryPagerAdapter extends PagerAdapter{
private final Context context;
LayoutInflater inflater;
private final int[] GalImages = new int[] {
R.drawable.ic_launcher,
R.drawable.ic_launcher,
R.drawable.ic_launcher
};
public GalleryPagerAdapter(Context context){
this.context=context;
}
@Override
public int getCount() {
return GalImages.length;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
ImageView imageView = new ImageView(context);
int padding = 10;
imageView.setPadding(padding, padding, padding, padding);
imageView.setScaleType(ImageView.ScaleType.MATRIX);
imageView.setImageResource(GalImages[position]);
container.addView(imageView, 0);
return imageView;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((ImageView) object);
}
}
Это мнение, что я хотел бы добавить динамически
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:padding="10dp" >
<ImageView
android:id="@+id/photo_thumb"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:background="#000000"
android:scaleType="fitXY"
android:padding="0dp" />
</RelativeLayout>
И это мой MainActivity, где мой ViewPager существует
MainActivity.xml
<LinearLayout
android:id="@+id/bannerLayout"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="0.4"
android:layout_margin="0dip"
android:orientation="vertical">
<android.support.v4.view.ViewPager
android:id="@+id/photoPager"
android:layout_width="fill_parent"
android:layout_height="125dp"
android:background="#4F4E4F"/>
</LinearLayout>
Так что мой вопрос, как я улучшить код, я использую, так что я могу динамически добавлять новое изображение к моему ViewPager
пса: На опорной линии (которые я твердо верю, отношение к моему вопросу), я полностью потерял в этой части:
// Create an initial view to display; must be a subclass of FrameLayout.
FrameLayout v0 = (FrameLayout) inflater.inflate (R.layout.one_of_my_page_layouts, null);
pagerAdapter.addView (v0, 0);
Что такое инфлятор ?? Для чего я должен его инициализировать?
Я надеюсь, что кто-то может направить меня. И я сожалею, если мне кажется, что задаю несколько вопросов здесь.
вы хотели бы добавить изображения с SD-карты? –
Да, пользователь должен иметь возможность просматривать информацию из своей телефонной галереи. – Jeremy
ОК, это будет некоторое время для разработки ответа для вас. –