我试图在 Android ImageView 中显示图片,但由于未知原因,某些图片不会显示。工作的图像相对较小,不工作的图像较大(1280x720)左右。我甚至尝试通过在.xml文件中添加maxWidth或maxHeight甚至是代码来限制图像的大小,但仍然没有结果。
这是我对ImageView的.xml代码;
<ImageView
android:id="@+id/imageImageView"
android:layout_width="fill_parent"
android:maxHeight="100dp"
android:maxWidth="100dp"
android:layout_height="wrap_content"
android:contentDescription="@string/empty"
android:gravity="center"
android:src="@drawable/test3" />
我的代码:
ImageView imageView = (ImageView) view
.findViewById(R.id.imageImageView);
imageView.requestLayout();
imageView.getLayoutParams().height = 100;
imageView.getLayoutParams().width = 100;
任何想法/建议?谢谢。
答案 0 :(得分:8)
尝试调整图片大小,如:
private Drawable resize(Drawable image) {
Bitmap bitmap = ((BitmapDrawable) image).getBitmap();
Bitmap bitmapResized = Bitmap.createScaledBitmap(bitmap,
(int) (bitmap.getWidth() * 0.5), (int) (bitmap.getHeight() * 0.5), false);
return new BitmapDrawable(getResources(), bitmapResized);
}
在你片段的onCreateView()中:
ImageView imageView = (ImageView) view
.findViewById(R.id.imageImageView);
imageView.setImageResource(0);
Drawable draw = getResources().getDrawable(R.drawable.test3);
draw = resize(draw);
imageView.setImageDrawable(draw);
答案 1 :(得分:2)
前段时间我有同样的问题,我的解决方案是检查图像命名约定示例(&#34; - &#34;到&#34; _&#34;,否名称中的空格,...... )您可以查看java命名约定以获取更多信息。
答案 2 :(得分:1)
试试这个: 在图像视图的xml代码中添加这两行:
android:scaleType="fitXY"
android:adjustViewBounds="true"
答案 3 :(得分:0)
<ImageView
android:id="@+id/imageImageView"
android:layout_width="100dp"
android:layout_height="100dp"
android:contentDescription="@string/empty"
android:src="@drawable/test3" />
试试这个:)
答案 4 :(得分:0)
对我来说,我遇到了这个错误
W/OpenGLRenderer: Bitmap too large to be uploaded into a texture (2250x4386, max=4096x4096)
我的图像大小实际上是750x1462,但是由于它位于drawable-mdpi res存储桶中,所以我认为它在后台被放大了,所以我将其移至xxhdpi,然后加载了图像而没有问题。
答案 5 :(得分:0)
这可能来晚了。我认为文件名也可能是一个问题。我刚刚在Android Studio和Boom的可绘制文件夹中将我的名字从 sebastian-staines-mfzdRsWsiRA-unsplash.jpg 重命名为 sebastian_staines.jpg ,Imageview已显示它。 希望这对别人有帮助