Android: Как препятствовать тому, чтобы изображение масштабировалось в ImageView или ImageButton?

Как я могу препятствовать тому, чтобы мой битовый массив масштабировался автоматически в ImageView или ImageButton, если представление или кнопка расширяются с помощью "fill_parent" или с помощью "веса"?

Это будет полезно, например, для создания панели инструментов с 4 кнопками наверху экрана, где кнопки равномерно распределены, но изображения в кнопках продолжают расширяться, даже если я использую scaleType = "центр", который должен предотвратить масштабирование согласно документу, но это не делает.

Любое понимание ценится!

Спасибо,

9
задан user277827 9 March 2010 в 02:00
поделиться

2 ответа

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

Я пробовал использовать android: src, чтобы поместить изображение в представление. Изображение не масштабировалось, но мне не удалось выровнять изображение по центру относительно размера представления.

Итак, я попытался сделать всю кнопку относительной компоновкой, и вот что я использовал:

<RelativeLayout android:id="@+id/RelativeLayout01" 
                android:layout_height="fill_parent" 
                android:layout_width="fill_parent">
                <ImageButton android:id="@+id/ImageButton01"    
                             android:layout_height="fill_parent"
                             android:layout_width="fill_parent"></ImageButton>
                <ImageView android:id="@+id/ImageView01"
                           android:layout_width="wrap_content"
                           android:layout_height="wrap_content" 
                           android:background="@drawable/cardback1" 
                           android:layout_centerInParent="true"></ImageView>
</RelativeLayout>

ImageButton находится в фоновом режиме и всегда будет того же размера, что и макет. ImageView, однако, будет всегда оставаться в центре RelativeLayout и не будет масштабироваться. Таким образом, RelativeLayout может увеличиваться и перемещаться, а изображение поверх кнопки всегда будет иметь тот же размер, но кнопка будет расти. Однако изображение сократится, если макет станет меньше самого изображения.

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

10
ответ дан 4 December 2019 в 13:47
поделиться

Если изображение масштабировано, убедитесь, что ваше приложение не запущено в режиме совместимости (например, если вы нацеливаетесь на Android 1.5 / 1.6 без поддержки нескольких плотностей и запускаете приложение на Android 2.0.)

{{1 }}
2
ответ дан 4 December 2019 в 13:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: