我想知道为我的应用创建照片库的最佳方式是什么。我从RSS源获取图片,我想以全屏显示每个图片。我该怎么用?我尝试使用ImageView,但图像调整的方式很糟糕(它们不保留原始尺寸)
我用这个答案来实现我的画廊:Android Gallery fullscreen
感谢的
编辑:
这是XML布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<android.support.v4.view.ViewPager
android:id="@+id/galleryPager"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</android.support.v4.view.ViewPager>
</LinearLayout>
这是我在我的适配器中用来加载图像的代码:
@Override
public Object instantiateItem(View collection, int position) {
ImageView imageView = new ImageView(context);
imageView.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
ImageDownloader.getInstance().download(gallery.get(position), ImageFormat.CONTENT_316, imageView);
((ViewPager) collection).addView(imageView, 0);
return imageView;
}
答案 0 :(得分:1)
我会在其中使用带有ImageViews的ViewPager。
您可以向ImageView指定如何使用xml中的android:scaleType
属性拉伸(或不使用)图像。如果您与ImageViews共享一些代码,并且可能会提供更多关于如何使用它们的信息,我可以尝试帮助您正确设置它。
另外,我建议您查看Displaying Bitmaps Efficiently,了解在处理图片时使用的最佳做法,以便将应用的效果保持在最佳状态。
答案 1 :(得分:1)
使用Adapter
&amp; ListView
显示图片幻灯片。
现在,在适配器项目的布局中,ImageView
使用fill_parent
进行宽度和放大像下面的代码一样高:
<ImageView
android:id="@+id/imageView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scaleType="fitXY" />
您可以建议用户在横向模式下使用手机以获得更好的性能。所以在 layout-land 文件夹中保留额外的布局
答案 2 :(得分:0)
一种方式是
答案 3 :(得分:0)
我上面使用的代码几乎是正确的,我刚刚将ImageView.ScaleType.FIT_XY更改为ImageView.ScaleType.CENTER_CROP
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<android.support.v4.view.ViewPager
android:id="@+id/galleryPager"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</android.support.v4.view.ViewPager>
</LinearLayout>
这是我在我的适配器中用来加载图像的代码:
@Override
public Object instantiateItem(View collection, int position) {
ImageView imageView = new ImageView(context);
imageView.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
imageView.setScaleType(**ImageView.ScaleType.CENTER_CROP**);
ImageDownloader.getInstance().download(gallery.get(position), ImageFormat.CONTENT_316, imageView);
((ViewPager) collection).addView(imageView, 0);
return imageView;
}