2011-08-02 37 views
7

Mam aplikację na Androida, w której robię zdjęcie za pomocą aparatu z Androidem. To zdjęcie zostało zrobione w activity A, a następnie zostało wysłane do activity B, gdzie jest edytowane.Ustaw rozmiar obrazu na pełny ekran w Androidzie

ten sposób otrzymam moje zdjęcie w activity B:

Bundle extras = getIntent().getExtras(); 
BitmapFactory.Options options=new BitmapFactory.Options(); 
     options.inSampleSize = 5; 
     byte[] imageData = extras.getByteArray("imageData"); 
     Bitmap myImage = BitmapFactory.decodeByteArray(imageData , 0, imageData.length,options); 

     Matrix mat=new Matrix(); 
     mat.postRotate(90); 
     bitmapResult = Bitmap.createBitmap(myImage, 0, 0, myImage.getWidth(), myImage.getHeight(), mat, true); 
ImageView imageView = (ImageView) findViewById(R.id.myPic); 
     imageView.setImageBitmap(bitmapResult); 

Jak widać jestem obrotowy bitmap otrzymam z 90 użyciem tego:

Matrix mat=new Matrix(); 
      mat.postRotate(90); 

I tu jest moje imageView w pliku xml:

<ImageView 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_gravity="center" 
    android:id="@+id/myPic" 
    /> 

Problem tha t mi stoi to, że mój obraz nie jest pełny ekran ... to almoust pełny screnn ale nie entirly.As można zobaczyć tutaj:

enter image description here

Jeśli mógłbyś mi pomóc zwiększyć trochę jej rozmiar Naprawdę chciałbym to docenić. Dzięki

EDYCJA: Chcę zwiększyć szerokość mojego image only.Sorry !!

+0

oznacza, że ​​chcesz wyświetlić obraz za przyciskiem również .... i przyciski nad nim? – Hanry

+0

Chcę zwiększyć szerokość obrazu, to wszystko! – adrian

+1

Czy wypróbowałeś Androida: scaleType = "fitXY" w imageView xml? – ingsaurabh

Odpowiedz

4

Może być konieczne przycięcie obrazu. Ponieważ obraz nie jest na pełnej wysokości, szerokość obrazu jest proporcjonalnie zmniejszana, stąd czarne paski po bokach.

Bardziej szczegółowo, zdjęcia wykonane aparatem telefonu prawdopodobnie mają dokładnie pasować do ekranu, tj. Stosunek szerokości do wysokości obrazu = stosunek wysokości do wysokości ekranu. Jednak w aplikacji wysokość obrazu jest ograniczona za pomocą przycisków u góry, dlatego w celu zachowania stosunku szerokości do wysokości obrazu szerokość obrazu jest zmniejszana proporcjonalnie.

+0

Nie rozumiem co masz na myśli! Czy możesz być bardziej konkretny ... i ja Chcę zwiększyć tylko szerokość mojego obrazu .... to wszystko! – adrian

+0

Załóżmy, że obraz ma rozmiar 1000 x 2000, a ekran to 500 x 1000. Następnie przypuśćmy, że Twoje przyciski mają wysokość 100 pikseli. Oznacza to, że wysokość wyświetlanego obrazu = 1000 - 100 = 900. Aby zachować proporcję, szerokość wyświetlanego obrazu = 900/2000 * 1000 = 450. –

+0

Aby zwiększyć szerokość obrazu, należy : 1) przyciąć górną część obrazu o 200 pikseli (wtedy szerokość wyświetlanego obrazu = 900/1800 * 1000 = 500; 2) zachodzić na przyciski nad obrazem; 3) użyj opcji [setScaleType] (http://developer.android.com/reference/android/widget/ImageView.html#setScaleType%28android.widget.ImageView.ScaleType%29), aby skalować i przycinać automatycznie. –

4

Proszę odnieść się do setScaleType

Można użyć CENTER_CROP, aby uzyskać pełny obraz ekranu i utrzymać współczynnik kształtu obrazu.