Android 如何将图像动态添加到包含imageview的viewpager?
我的主布局中有一个viewpager。视图寻呼机仅包含由RelativeLayout包装的ImageView 我想做的是,当用户单击一个按钮时,它会将一个图像添加到特定的viewpager 我在stackoverflow上找到了这个答案(我认为这与我的问题有关),但是我完全不懂这个代码 到目前为止,这是我的代码: MainActivity.JavaAndroid 如何将图像动态添加到包含imageview的viewpager?,android,android-layout,android-viewpager,Android,Android Layout,Android Viewpager,我的主布局中有一个viewpager。视图寻呼机仅包含由RelativeLayout包装的ImageView 我想做的是,当用户单击一个按钮时,它会将一个图像添加到特定的viewpager 我在stackoverflow上找到了这个答案(我认为这与我的问题有关),但是我完全不懂这个代码 到目前为止,这是我的代码: MainActivity.Java private PagerAdapter pAdapter; private ViewPager photoPager; ... pAdapt
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>
什么是充气机??我应该将其初始化为什么
我希望有人能指点我。如果我听起来像是在问多个问题,我很抱歉。充气器用于从xml布局中创建视图对象 因此,如果您的LAOUT
R.layout。我的页面布局之一
:
<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>
只有最小的代码,但充气机将设置所有的布局参数以及
因此,与其像在instantiateItem
中那样动态创建一个视图,如果您有一个xml,您只需将其膨胀并获得view类型的对象即可
因此,您可以将实例化项更改为:
public Object instantiateItem(ViewGroup container, int position) {
RelativeLayout v0 = (RelativeLayout ) inflater.inflate (R.layout.one_of_my_page_layouts, null);
ImageView imageView = vo.findViewById(R.id.photo_thumb);
int padding = 10;
imageView.setPadding(padding, padding, padding, padding);
imageView.setScaleType(ImageView.ScaleType.MATRIX);
imageView.setImageResource(GalImages[position]);
container.addView(v0, 0);
return v0;
}
是否要添加SD卡中的图像?是的,用户应能够从其手机图库中浏览。好的,需要一些时间为您确定答案。我将耐心等待……)同时,我将修补我遇到的引用链接。您扩展了PageAdapter,但需要一个此startOnActivityResult()方法ViewPager不能直接保存ImageView吗?当代码可以创建ImageView并将其添加到集合中时,为单个视图使用布局似乎太过分了。
<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>
ImageView iv=new ImageView(context);
RelativeLayout rl=new RelativeLayout(context);
rl.add(iv)
return rl;
public Object instantiateItem(ViewGroup container, int position) {
RelativeLayout v0 = (RelativeLayout ) inflater.inflate (R.layout.one_of_my_page_layouts, null);
ImageView imageView = vo.findViewById(R.id.photo_thumb);
int padding = 10;
imageView.setPadding(padding, padding, padding, padding);
imageView.setScaleType(ImageView.ScaleType.MATRIX);
imageView.setImageResource(GalImages[position]);
container.addView(v0, 0);
return v0;
}