1

我有一个ImageView作为 a 的孩子的 a ViewGroup,它是 a 的一部分GridView。的drawableImageView没有出现,但是我可以看到背景颜色,如果我使用drawablesetBackgroundDrawable代替,它会显示出来。我尝试更改每个属性并调用invalidate(),但没有一个使可绘制对象出现。

Log.i版画_

 android.graphics.drawable.BitmapDrawable@407bd4c0

setImageResource(int)也不行。

我正在使用蜂窝。

public MyViewGroup(Context context) {
    super(context);

    myImageView = new ImageView(context);
    myImageView.setBackgroundColor(Color.RED);
    myImageView.setScaleType(ImageView.ScaleType.CENTER);
    Drawable drawable = this.getResources().getDrawable(R.drawable.myimage);
    myImageView.setImageDrawable(drawable);
    Log.i("",drawable+"");
    //myImageView.setImageResource(R.drawable.myimage);
    addView(myImageView);
}

我省略了我调用的 onLayout 代码setLeft() setTop() setRight()setBottom().

任何帮助深表感谢。谢谢。

更新:也不适用于 android.R.drawable 图像。我难住了。

4

3 回答 3

1

也许问题是,您没有设置布局参数。尝试:

LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, WRAP_CONTENT);
myImageView .setLayoutParams(params);
于 2011-08-11T22:09:38.050 回答
0

尝试将图像设置为位图,然后将其设置为可绘制。

Bitmap bmp = BitmapFactory.decodeResource(context.getResources(), R.drawable.myimage)
Drawable drawable = new BitmapDrawable(bmp);"
 myImageView.setImageDrawable(drawable);

只是出于好奇:为什么要在构造函数中执行所有这些操作?

于 2011-08-11T22:04:05.073 回答
0

如果父布局的宽度/高度为 fill_parent,则将其更改为 wrap_content 可能会奏效。

我在 Honeycomb 中使用带有布局中的可绘制对象的 ImageView 遇到了这个问题 - 从我出现的对话框的宽度来看,图像在那里,但我看不到图像本身。ImageView 的父级是带有 fill_parent 的 LinearLayout。切换到 wrap_content 修复了它。

于 2011-09-14T22:58:03.087 回答