Получить Eclipse, чтобы показать пользовательский компонент в графическом представлении XML - PullRequest
0 голосов
/ 17 декабря 2011

Я просто расширил ImageView, чтобы изображение получило полную ширину. Вот так: ..

public class BannerImageView extends ImageView {

    public BannerImageView(Context context) {
        super(context);
    }

    public BannerImageView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public BannerImageView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        int width = MeasureSpec.getSize(widthMeasureSpec);
        int height = width * getDrawable().getIntrinsicHeight() / getDrawable().getIntrinsicWidth();
        setMeasuredDimension(width, height);
    }
}

В XML я объявил это следующим образом:

<com.whatever.next.BannerImageView
      android:id="@+id/banner"
      android:src="@+drawable/logo"
      android:layout_width="fill_parent"
      android:layout_height="wrap_content" />

Я получаю следующие ошибки:

main.xml: невозможно разрешить выводимое «com.android.layoutlib.bridge.ResourceValue@48537a0f» в атрибуте «src»

тогда я получаю ожидаемые исключения нулевого указателя.

Я запутался, как думал, так как я не изменяю стандартное поведение ImageView, которое будет отображаться в графическом макете. Я прочитал другие подобные вопросы, и это еще больше смутило меня.

Для записи приведенный выше код прекрасно работает на реальном устройстве.

Любая помощь приветствуется!

1 Ответ

0 голосов
/ 17 декабря 2011

вместо

android:src="@+drawable/logo"

используйте

android:src="@drawable/logo"

Нет + для атрибута src

...