android - 放置在 GalleryView 中的膨胀 ImageView 尺寸不正确

标签 android imageview galleryview

我正在尝试膨胀一个 ImageView,它可以缩放我可以在 GalleryView 中显示的 Drawable。我用来膨胀 View 的代码似乎工作正常,只是没有应用 ImageView 的属性。具体来说,膨胀的 ImageView 没有我通过 XML 中的 android:layout 参数为其设置的宽度/高度。

有人可以告诉我我做错了什么吗?

我想以 dp 为单位设置图像的宽度/高度,以便它在多个屏幕 dpis 上都是正确的尺寸并支持 Android 1.5+。结果我不能使用类似的东西:

i.setLayoutParams(new Gallery.LayoutParams(150, 116)

我的布局定义是:

<?xml version="1.0" encoding="utf-8"?>
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="150dp" android:layout_height="116dp"
    android:background="@drawable/gallery_item_background"
    android:scaleType="fitXY" />
</ImageView>

我用来膨胀 ImageView 的 fragment 是:

    public View getView(int position, View convertView, ViewGroup parent) {
        LayoutInflater inflater = getLayoutInflater();
        ImageView i = (ImageView) inflater.inflate(R.layout.gallery_item, null);
        i.setImageResource(mImageIds.get(position));
        i.setScaleType(ImageView.ScaleType.FIT_XY);

        return i;
    }

最佳答案

诀窍就是使用以下版本的inflate():

inflater.inflate(R.layout.gallery_item, parent, false);

最后两个参数是必需的。如果您将“null”作为父级传递,则充气器不知道要创建什么类型的布局参数,因此会忽略所有 android:layout_ XML 属性。最后一个参数只是告诉充气器不要立即将充气 View 添加到父级。如果您传递 true(至少在 Adapter 的 getView() 方法中),就会发生不好的事情。

关于android - 放置在 GalleryView 中的膨胀 ImageView 尺寸不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4442486/

相关文章:

javascript - jQuery galleryview 在鼠标移开时开始自动播放

Android GalleryView 回收

android - 如何在 Galleryview 中设置来自 URL 的图片

android - Android为图像选择器创建图像的水平 ScrollView

android - 如何创建 Android 系统级服务

android - 为 FacebookShareDialog 设置标签

android - fragment 内异步任务中的空指针异常

android - 如何在 AlertDialog 中显示来自 GridView 的图像?

通过 Imageview 进行 Android 手势检测

Javascript 函数在桌面浏览器中工作,但在 android webview 中不工作