Как я могу заставить ImageView масштабировать изображение и выравнивать верхний правый угол? - PullRequest
1 голос
/ 09 марта 2011

Я потратил 3 часа, пытаясь заставить это работать безуспешно, так что кто-то здесь может помочь.

У меня есть FrameLayout, который загружается с помощью inflate из файла XML, и в нем у меня есть следующий макет: </p> <pre><code> <LinearLayout android:layout_width="0dip" android:layout_height="fill_parent" android:layout_weight="1" android:orientation="vertical" > <ImageView android:id="@+id/element_image" android:layout_width="wrap_content" android:layout_height="0dip" android:layout_weight="1" android:layout_marginBottom="10dip" android:layout_marginLeft="10dip" android:scaleType="fitStart" android:background="#888888" > </ImageView> <Button android:id="@+id/element_button" style="@style/Button" android:layout_gravity="right" android:text="@string/element_button_label" /> </LinearLayout>

У меня есть изображение, загруженное из BLOB-объекта, которое я хочу отобразить в этом ImageView. В GalleryAdaptor я загружаю изображение так:

    ImageView image = (ImageView) v.findViewById(R.id.element_image);
    byte [] bitmapData = cursor.getBlob(4);
Bitmap bitmap = BitmapFactory.decodeByteArray(bitmapData, 0, bitmapData.length);            
    image.setImageBitmap(bitmap);   

Когда я использую android: scaleType = "fitStart" в макете над изображением, оно не масштабируется до высоты или ширины ImageView, но составляет около трети его ширины (что я вижу по заданному серому фону) это) и по центру.

Если я использую android: scaleType = "fitXY", высота изображения масштабируется, а ширина - нет. Снова изображение центрировано.

Может кто-нибудь подсказать мне:

  1. Как заставить изображение масштабировать по высоте и ширине
  2. Как выровнять изображение вверху справа

1 Ответ

1 голос
/ 15 марта 2011

Отвечая на мой собственный вопрос здесь - но похоже, что это была просто проблема с разрешением исходного изображения. Android (по крайней мере 2.2) не хочет масштабировать эти изображения при использовании fitStart или fitEnd - но когда используется fitXY, он масштабирует их.

...