【发布时间】:2014-01-08 20:41:46
【问题描述】:
我的 main_layout 中有一个 viewpager。视图分页器只包含一个由 RelativeLayout 包裹的 ImageView
我想要做的是,当用户点击一个按钮时,它会将图像添加到该特定的浏览器。
我在 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>
这是我的 ViewPager 所在的 MainActivity
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
ps:在参考链接上(我坚信这与我的问题相关),我完全迷失了这一部分:
// 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 卡中添加图片吗?
-
是的,用户应该能够从他们的手机图库中浏览。
-
好的,需要一些时间来为您制定答案。
-
我会耐心等待.. :) 同时我会修补我遇到的那个参考链接。
-
你扩展了 PageAdapter 但需要一个这个 startOnActivityResult() 方法
标签: android android-layout android-viewpager