2011-08-02 34 views
7

Tôi đang có một ứng dụng Android trong đó tôi đang chụp ảnh bằng camera Android. Ảnh này được chụp trong activity A và sau đó được gửi đến activity B nơi được chỉnh sửa.đặt kích thước hình ảnh thành toàn màn hình trong android

Đây là cách tôi nhận được hình ảnh của tôi trong 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); 

Như bạn có thể thấy tôi đang xoay bitmap tôi nhận được với 90 sử dụng này:

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

Và đây là imageView của tôi trong tệp xml:

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

Sự cố tha t Tôi đang phải đối mặt là hình ảnh của tôi không phải là toàn màn hình ... đó là almoust screnn đầy đủ nhưng không entirly.As bạn có thể xem tại đây:

enter image description here

Nếu bạn có thể giúp tôi tăng một chút của nó Tôi thực sự apreciate it.Thanks

EDIT: Tôi muốn tăng chiều rộng của hình ảnh của tôi only.Sorry !!

+0

có nghĩa là bạn cũng muốn hiển thị hình ảnh phía sau nút .... và các nút trên đó ?? – Hanry

+0

Tôi muốn tăng chiều rộng của hình ảnh đó là tất cả! – adrian

+1

Bạn đã thử android: scaleType = "fitXY" trong imageView xml chưa? – ingsaurabh

Trả lời

4

Bạn có thể phải cắt hình ảnh. Bởi vì hình ảnh không ở độ cao đầy đủ của nó, chiều rộng của hình ảnh được tỉ lệ tương ứng xuống, do đó các dải màu đen ở hai bên.

Để cụ thể hơn, hình ảnh được chụp bằng camera của điện thoại có thể nhằm phù hợp với màn hình chính xác, tức là tỷ lệ chiều rộng-chiều cao của tỷ lệ hình ảnh = chiều rộng-chiều cao của màn hình. Tuy nhiên, trong ứng dụng của bạn chiều cao của hình ảnh bị hạn chế bởi các nút ở trên cùng, do đó, để duy trì tỷ lệ chiều rộng-chiều cao của hình ảnh, chiều rộng của hình ảnh được thu nhỏ theo tỷ lệ tương ứng.

+0

Tôi không thực sự hiểu ý bạn là gì! Bạn có thể cụ thể hơn ... và tôi chỉ muốn tăng chiều rộng của hình ảnh của tôi .... đó là tất cả! – adrian

+0

Giả sử hình ảnh là 1000 x 2000 và màn hình là 500 x 1000. Sau đó, giả sử các nút của bạn cao 100px. Điều đó có nghĩa là chiều cao của hình ảnh được hiển thị = 1000 - 100 = 900. Để duy trì tỷ lệ, chiều rộng của hình ảnh được hiển thị = 900/2000 * 1000 = 450. –

+0

Vì vậy, để tăng chiều rộng của hình ảnh của bạn, : 1) cắt phần trên cùng của hình ảnh của bạn lên 200px (sau đó chiều rộng của hình ảnh được hiển thị = 900/1800 * 1000 = 500; 2) chồng lên các nút trên hình ảnh của bạn; 3) sử dụng [setScaleType] (http://developer.android.com/reference/android/widget/ImageView.html#setScaleType%28android.widget.ImageView.ScaleType%29) để chia tỷ lệ và cắt tự động. –

4

Vui lòng tham khảo setScaleType

Bạn có thể sử dụng CENTER_CROP để có được hình ảnh toàn màn hình và duy trì tỷ lệ khía cạnh của hình ảnh.

Các vấn đề liên quan