Изображение ImageView не отображается в ViewGroup - PullRequest
1 голос
/ 11 августа 2011

У меня ImageView как ребенок ViewGroup, который является частью GridView. Ничья из ImageView не отображается, однако я вижу цвет фона, и если вместо этого я использую рисование в setBackgroundDrawable, он отображается. Я пытался изменить каждое свойство и вызвать 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. Я в тупике.

Ответы [ 3 ]

1 голос
/ 12 августа 2011

Возможно, проблема в том, что вы не устанавливаете параметры макета. Попробуйте:

LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, WRAP_CONTENT);
myImageView .setLayoutParams(params);
0 голосов
/ 15 сентября 2011

Если родительский макет имеет ширину / высоту fill_parent, изменение его на wrap_content может помочь.

У меня была эта проблема в Honeycomb с использованием ImageView с отрисовкой в ​​макете - там было изображение, судя по ширине диалогового окна, в котором оно появлялось, но я не мог видеть само изображение. Родителем ImageView был LinearLayout с fill_parent. Переключение на wrap_content исправило его.

0 голосов
/ 12 августа 2011

Попробуйте установить получение изображения в виде растрового изображения, затем установите его в качестве растягиваемого.

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

Просто из любопытства: зачем вы все это делаете в своем конструкторе?

...