-1

我有问题:当您尝试将 ImageView 添加到 LinearLayout 时,某些图像未加载并且程序以黑屏停止。图片JPG或PNG没有区别。尝试将 100x100px 的大小更改为 1080x1920。如果我将图片替换为另一张图片,那么一切都很好,但我需要这张图片。我把异常放到这段代码中,但是在logcat中什么都没有,即异常没有发生。请帮我。谢谢你。

for (int i = 0, lenI = anims.length; i < lenI; i++ ) {
     try {
          LinearLayout linearLayout = new LinearLayout(this);
          linearLayout.setOrientation(LinearLayout.HORIZONTAL);

          //add image
          ImageView imageView = new ImageView(this);
          linearLayout.addView(imageView);
          int resId = getResources().getIdentifier("ru.romston.testprog:drawable/"+pics[i], null, null);
          imageView.setImageResource(resId);
          imageView.setMaxHeight(100);
          imageView.setMaxWidth(100);
          imageView.setPadding(5,5,5,5);
          imageView.setAdjustViewBounds(true);

          //label
          TextView textView = new TextView(this);
          linearLayout.addView(textView);
          textView.setText(anims[i]);

          layout.addView(linearLayout);
          } catch (Exception e) {
              Log.e(TAG, "read data: error!" + e.getMessage(), e);
          }
 }
4

2 回答 2

0

我认为图像具有更高的分辨率/尺寸,Android 渲染系统无法将其缩放到 100 的高度和宽度。在更改图像尺寸/分辨率后尝试使用相同的图像。如有错误请指正。

于 2013-07-05T10:48:14.740 回答
0

ImageViews 有一个基于 OpenGL 的分辨率限制。如果位图或图像通过此限制分辨率,它会显示黑屏并且不会引发错误。

您可以通过查询 OpenGL 来检索此限制:

int[] maxSize = new int[1];
GLES10.glGetIntegerv(GL10.GL_MAX_TEXTURE_SIZE, maxSize, 0);

有关更多详细信息,请参阅此答案

于 2020-03-30T05:53:02.583 回答