android ImageButton не разтяга изображение

Как мога да попреча на ImageButton да разтяга изображението?

Използвайки този фрагмент:

 <ImageButton
                android:src="@drawable/prediction"
                android:background="?android:attr/selectableItemBackground"
                android:gravity="center_horizontal"
                android:scaleType="centerInside"
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"
                android:contentDescription="some description"
                android:text="@string/predict"
                local:MvxBind="Click ExecuteQueryCmd" />

Получавам следния ефект:

въведете описание на изображението тук

Изображението е 64x64 png.

Всичко, което искам, е ImageButton да зачита естествената ширина и дължина, следователно разделителната способност на изображението, което му е присвоено. Препоръки въз основа на подобна публикация е да използвате бутон, да зададете фона му на изображение и след това да използвате персонализирани селектори, но това звучи като хак. Или това е правилният начин да направите това?


person Klaus Nji    schedule 19.11.2013    source източник
comment
задал си височината и теглото му на wrap-content и той все още се разтяга?? изглежда като странен проблем   -  person Illegal Argument    schedule 19.11.2013
comment
провери ли scaleType = център   -  person Gaurav Vashisth    schedule 19.11.2013
comment
използвах много бутон за изображение в моето приложение. Виждайки вашия проблем, проверих моето приложение, то не присъства в моето. Използвам png изображения с прозрачен фон.   -  person Illegal Argument    schedule 19.11.2013
comment
С прозрачните png също нямах проблеми. Фоновото изображение се разтяга, но изображението, използвано в атрибута src, остава същото.   -  person JanBo    schedule 19.11.2013
comment
@Subash, а твоите изображения не се разтягат? Ако е така, какъв е родителският контейнер, хостващ тези ImageButtons?   -  person Klaus Nji    schedule 19.11.2013
comment
@GauravVashisth scaleType на центъра го държи разтегнат.   -  person Klaus Nji    schedule 20.11.2013
comment
@JanBo, това е интересен коментар, който си струва да проучим допълнително. Фонът ми е прозрачен, така че може би изображението ми в src се разтяга, ако сега Google реши да използва това като мой фон.   -  person Klaus Nji    schedule 20.11.2013
comment
@KlausNji моят контейнер е относително оформление и фонът е изображение за цялата дейност   -  person Illegal Argument    schedule 20.11.2013


Отговори (3)


При мен работи с

  <ImageButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:adjustViewBounds="true"
    android:background="@android:color/transparent"
    android:contentDescription="some description"
    android:scaleType="centerInside"
    android:src="@drawable/ci_icon"
    android:text="@string/predict"
    local:MvxBind="Click ExecuteQueryCmd" />

Поставете вашето изображение в атрибута android:src

person azerto00    schedule 19.11.2013
comment
Току-що го направих и изображението все още се разтяга. Наистина е разочароващо колко трудно е да се правят толкова прости неща на Android. Също така имайте предвид, че не мога да използвам @android:color/transparent, защото бутонът вече не променя цвета си при щракване. - person Klaus Nji; 20.11.2013

Задайте ширината на ImageButtons на fill_parent и използвайте scaletype fitStart за изображенията, които прегръщат лявото поле, и fitEnd за тези отдясно. Трябва да свърши работа, поне що се отнася до вашето примерно изображение. Може да имате проблеми с разстоянието, ако пропорционалната ширина на изображенията надвишава ширината на екрана, но трябва да работи за вас.

person Ajay Venugopal    schedule 22.12.2014

Направите това:

<ImageButton
                android:src="@drawable/prediction"
                android:background="?android:attr/selectableItemBackground"
                android:scaleType="fitXY"
                android:adjustViewBounds="true"
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"
                android:contentDescription="some description"
                android:text="@string/predict"
                local:MvxBind="Click ExecuteQueryCmd" />
person arpit    schedule 27.01.2015