Znalazłem świetny wątek opisujący, jak "zjeść ciasto i też je mieć", tj. Użyj obrazka Button
zamiast ImageButton
(co nie pozwala SetText()
, zmiana rozmiaru itp.).
Osiąga się to za pomocą atrybutu View:
android:background="@drawable/bgimage"
Jedynym problemem jest to, że rozciąga obraz, aby dopasować go do rozmiaru przycisku.
Oprócz zakodowania stałego rozmiaru przycisku (w pikselach!), Czy istnieje sposób, aby powiedzieć Androidowi, aby w ogóle nie rozciągał obrazu tła i albo go przycinał, ani nie wypełniał?
źródło
ImageView
wygląda interesująco. Zauważyłem, że ma atrybut, który nie jest wButton
:android:cropToPadding
. Nie mam nic przeciwko używaniu zamiast tego ImageView, o ile masetOnClickListener()
- co robi. Co stracę, przechodząc zButton
naImageView
?setDrawableResource
a następnie upewnić się, żesetAdjustViewBounds
jest ustawiony na trueMożesz utworzyć bitmapę xml i użyć jej jako tła dla widoku. Aby zapobiec rozciągnięciu, możesz określić
android:gravity
atrybut.na przykład:
Istnieje wiele opcji, których możesz użyć, aby dostosować renderowanie obrazu
http://developer.android.com/guide/topics/resources/drawable-resource.html#Bitmap
źródło
Po prostu użycie
ImageButton
zamiastButton
rozwiązuje problem.i możesz ustawić
aby usunąć tło przycisku, jeśli chcesz.
Szybka naprawa !! :-)
źródło
Używam ImageView w RelativeLayout, który nakłada się z moim normalnym układem. Nie jest wymagany kod. Zmienia rozmiar obrazu do pełnej wysokości ekranu (lub innego używanego układu), a następnie przycina obraz w lewo i w prawo, aby dopasować go do szerokości. W moim przypadku, jeśli użytkownik obróci ekran, obraz może być odrobinę za mały. Dlatego używam match_parent, co spowoduje rozciągnięcie obrazu, jeśli jest za mały.
źródło
Miałem ten sam problem: zamiast oryginalnego obrazu powinieneś używać tylko 9-poprawkowego obrazu (.9.png).
Serge
źródło
Użyj draw9patch ... zawartego w narzędziach SDK Android Studio. Możesz zdefiniować rozciągliwe obszary obrazu. Ważne części są ograniczone, a obraz nie wygląda na wypaczony. Dobre demo na dra9patch jest TUTAJ
Użyj draw9patch, aby zmienić istniejący plik splash.png na new_splash.9.png, przeciągnij new_splash.9.png do folderu projektu drawable-hdpi, upewnij się, że plik AndroidManifest i styles.xml są prawidłowe, jak poniżej:
AndroidManifest.xml:
styles.xml:
źródło
Miałem obraz w tle, nie duży, ale o dziwnych wymiarach - stąd rozciąganie i kiepska wydajność. Stworzyłem metodę z parametrami Context, View i identyfikatorem do rysowania (int), który będzie pasował do rozmiaru ekranu urządzenia. Użyj tego np. W Fragments onCreateView, aby ustawić tło.
źródło
Oto wersja odpowiedzi Santosha na przyciski utworzone programowo, bez potrzeby osobnej konfiguracji XML:
Dodałem linię ColorFilter, ponieważ działa ona trochę inaczej niż przyciski z normalnym obrazem tła.
źródło
Można używać
FrameLayout
ze związkiemImageView
jako pierwsze dziecko, potem normalnym układzie jak drugie dziecko:źródło
Kluczem jest ustawienie elementu do rysowania jako obrazu przycisku, a nie tła. Lubię to:
źródło
Czy można użyć zwykłego ImageView w swoim xml i uczynić go klikalnym (android: clickable = "true")? Jako źródło wystarczy użyć tylko obrazu, który ma kształt przycisku, czyli zaokrąglone rogi.
źródło