2012-01-29 7 views
5

Chciałbym wyświetlić obraz z ramką. Poniższe rozwiązanie działa dobrze dla niektórych obrazów, ale nie dla innych.Niespójne skalowanie obrazu w systemie Android dla Androida: scaleType = "fitCenter"

Do tej pory domyślam się, że działa dobrze dla mniejszych obrazów, ale nie dla dużych.

Dzięki mniejszym obrazom rozwiązanie wyświetla obraz ładnie z 2-pikselową krawędzią. Przy dużym obrazie tło jest zbyt szerokie.

Testowałem to z obrazem, który skalowałem ręcznie od 2000 * 400 do 200 * 40. Więc to był ten sam obraz, tylko prescaled.

Każdy pomysł, dlaczego duże zdjęcia nie będą skalowane w taki sam sposób jak mniejsze?

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:background="#ffffff" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:orientation="vertical" 
       android:gravity="center" > 

    <ImageView 
      android:id="@+id/testimage" 
      android:background="#000000" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:src="@drawable/testimage2" 
      android:padding="2dip" 
      android:scaleType="fitCenter" 
      /> 
</LinearLayout> 
+0

Możesz wypróbować wszystkie kombinacje scaleType. –

+0

Tak właśnie zrobiłem i skończyłem z fitCenter. Byłem pewien, że jest właściwy, ale tak nie było. – tzrnee

Odpowiedz

5

Usuń scaletype i użyj android: adjustViewBounds = "true" dla twojego Imageview.

+0

Tak, to działa dobrze. Dzięki! – tzrnee