2012-06-28 15 views
35

Tôi có ImageView này trong cách bố trí của tôi:nguồn Xoay ImageView từ file layout xml

<ImageView android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:contentDescription="@string/image_divider" 
     android:paddingBottom="8dp" 
     android:paddingTop="4dp" 
     android:scaleType="fitXY" 
     android:src="@android:drawable/divider_horizontal_textfield" /> 

Đó là một chia ngang. Tôi muốn xoay nó 90 độ vì vậy tôi có một chia dọc.
Có cách nào có thể thực hiện ngay tại đây từ bố cục chứ không phải lớp Hoạt động?

+0

bạn chỉ có thể thiết lập chiều cao cho 'layout_height = "fill_parent"' và sau đó nó sẽ được kéo dài trên tất cả các bố trí – thepoosh

+0

Vui lòng chấp nhận/phiếu bầu tán thành câu trả lời nếu bạn đã có giải pháp của mình :) –

+0

@thepoosh: Hình ảnh nguồn không phải là hình vuông. Đó là một hình chữ nhật rộng và làm những gì bạn nói, sẽ dẫn đến một hình chữ nhật dọc mỏng. – mehrmoudi

Trả lời

104

Bạn có thể sử dụng sẵn Kể từ API Cấp 11

android:rotation="90" 

Mã cuối cùng để Đặt,

<ImageView android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:rotation="90" 
     android:contentDescription="@string/image_divider" 
     android:paddingBottom="8dp" 
     android:paddingTop="4dp" 
     android:scaleType="fitXY" 
     android:src="@android:drawable/divider_horizontal_textfield" /> 
+1

Cảm ơn, nhưng không có thuộc tính như vậy cho ImageView, ít nhất là trong tôi! http://s15.postimage.org/gpit1dvrd/Untitled.png – mehrmoudi

+0

@Mehran Truy cập http://developer.android.com/reference/android/view/View.html#attr_android:rotation Để biết thêm thông tin –

+1

Tôi không đồng ý: android : thuộc tính roation chỉ khả dụng kể từ API 11: http://developer.android.com/reference/android/R.attr.html#rotation –

1

Bạn có thể làm điều đó trong mã của bạn bằng cách tạo ra một đối tượng bitmap mới. Kiểm tra này ra: http://android-er.blogspot.fr/2010/07/rotate-bitmap-image-using-matrix.html Và đặc biệt chức năng này

Matrix matrix = new Matrix(); 
matrix.postScale(curScale, curScale); 
matrix.postRotate(curRotate); 

Bitmap resizedBitmap = Bitmap.createBitmap(bitmap, 0, 0, bmpWidth, bmpHeight, matrix, true); 
myImageView.setImageBitmap(resizedBitmap);