0

我想知道为我的应用程序创建照片库的最佳方式是什么。我从 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;
}
4

4 回答 4

1

我会在其中使用带有 ImageViews 的ViewPager

您可以向 ImageView 指定您希望(或不)如何使用android:scaleTypexml 中的属性拉伸图像。如果您共享一些您在 ImageViews 中使用的代码,并且可能提供更多关于您希望它们如何显示的信息,我可以尝试帮助您正确设置它。

另外,我建议您查看有效地显示位图,了解处理图像时使用的最佳实践,以使您的应用程序的性能保持一流。

于 2012-07-13T13:40:10.797 回答
1

使用Adapter&ListView显示图像幻灯片。

现在在适配器项目的布局中使用ImageView宽度fill_parent和高度,如下面的代码:

<ImageView
        android:id="@+id/imageView1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:scaleType="fitXY" />

您可能会建议用户在横向模式下使用手机以获得更好的性能。所以在layout-land文件夹中保留额外的布局

于 2012-07-13T13:44:51.017 回答
0

一种方法是

  • 从 rss 提要中获取图像 url
  • 在自定义画廊中将它们显示为缩略图(可以通过水平线性布局设置,其中包含图像视图,在滚动视图内)
  • 使用延迟加载图像来显示这些缩略图
  • 覆盖 onClickListener 以获取点击事件
  • 并在此 onClick 中加载 web 视图中的当前图像 URL。
  • webview 具有良好的缩放、沿图片移动等功能。
于 2012-07-13T13:49:50.267 回答
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;
}
于 2012-07-17T13:35:56.243 回答