2012-06-01 34 views
22

Sau đây là một đường nét đứt, định nghĩa là một ShapeDrawable trong XML:Android tiêu tan dòng drawable tiềm năng ICS lỗi

<shape 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="line"> 

    <size 
     android:height="2dp" 
     android:width="700dp" /> 

    <stroke 
     android:width="1dp" 
     android:color="@android:color/black" 
     android:dashWidth="1dp" 
     android:dashGap="2dp" /> 

</shape> 

này sẽ vẽ một đường chấm chấm tốt đẹp trên nhiều điện thoại Gingerbread. Tuy nhiên, trên Galaxy Nexus, các dấu gạch ngang dường như bị bỏ qua và hình dạng được vẽ như một đường liền kề. Thậm chí tò mò hơn, một trình giả lập chạy ICS sẽ hiển thị chính xác với dấu gạch ngang, nó chỉ là thiết bị vật lý vặn lên.

Tôi có thiếu thứ gì đó hiển nhiên không? Hay đây thực sự là một lỗi với Android 4.0? Các dòng được sử dụng ở một số nơi. Dưới đây là ví dụ về ImageView:

<ImageView 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginLeft="@dimen/observation_observe_side_margin" 
    android:layout_marginRight="@dimen/observation_observe_side_margin" 
    android:layout_marginTop="16dp" 
    android:contentDescription="@string/dotted_line_description" 
    android:src="@drawable/dotted_line" /> 
+0

Tôi nhận thấy cùng một vấn đề trên ứng dụng của mình trên Galaxy Nexus. Trên các thiết bị khác của tôi, thiết bị 2.x nó hiển thị như chấm. –

+0

trùng lặp của http://stackoverflow.com/a/26296229/185022 –

+0

trùng lặp có thể có của [Đường chấm chấm thực sự không bị rải rác khi ứng dụng đang chạy trên thiết bị Android thực] [http://stackoverflow.com/questions/18931679/dotted -nút-là-thực-không-chấm-khi-ứng-dụng-đang-chạy-trên-thực-android-thiết bị) –

Trả lời

21

Vấn đề này được đăng nhập tại đây http://code.google.com/p/android/issues/detail?id=29944 Tắt tăng tốc phần cứng sẽ hiển thị đường đứt nét.

+2

Thật không may điều này làm xấu đi hiệu suất của tôi khoảng 500%. Bất kỳ cách giải quyết nào để ngăn chặn điều này? –

43

Vấn đề đăng nhập tại http://code.google.com/p/android/issues/detail?id=29944 có một lời nhận xét của việc áp dụng sau đây để xem bạn:

view.setLayerType(View.LAYER_TYPE_SOFTWARE, null) 

này đã làm việc cho tôi.

+27

Lưu ý rằng nếu bạn không muốn chỉnh sửa chế độ xem theo chương trình, bạn cũng có thể thêm thuộc tính 'android: layerType =" software "' vào định nghĩa XML. – Arkaaito

+0

API 11+ http://developer.android.com/reference/android/view/View.html#setLayerType – Dori

+0

vì vậy trong ví dụ trong câu hỏi. bạn sẽ đặt 'android: layerType =" software "' thành 'ImageView' hay' shape'? –

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