2013-08-06 33 views
8

Tôi muốn thiết kế một spinner như được hiển thị trong hình dưới đây:Làm thế nào để thiết kế một spinner trong Android

Enter image description here

tôi không nhận được biểu tượng mũi tên trỏ Nhược điểm trong spinner. Tôi có thể làm cái này như thế nào?

Nếu tôi thiết kế nút như hình trên thì tôi phải viết thêm mã để có chức năng tương tự như đối với một spinner, vì Spinner không có android:drawableRight="@drawable/arraodown", nhưng trong nút chúng tôi có phương pháp này.

+0

Tôi đang sử dụng ArrayAdapter adapter_subject = new ArrayAdapter (ActivityName.this, android.R.layout. simple_spinner_dropdown_item, ArrayListData); \t spinner_name.setAdapter (adapter_subject); –

Trả lời

11

Không làm lộn xộn xung quanh với các bảng vẽ phải/trái/....

Chỉ cần đặt một bản vá 9 bản làm nền giới hạn nội dung bên trong.

<Spinner 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:background="@drawable/you_spinner_drawable" /> 

Về drawable 9 miếng vá có một cái nhìn tại các nguồn lực android hoặc ít ví dụ này hình ảnh lấy từ this blog post (trong đó cho thấy trong ít chi tiết hơn về cách làm cho một spinner tùy chỉnh):

spinner drawables example

Đối drawables thông tin về 9-patch xem tài liệu android: http://developer.android.com/guide/topics/graphics/2d-graphics.html#nine-patch http://developer.android.com/tools/help/draw9patch.html

Tất nhiên bạn cũng có thể chỉ định một tập tin danh sách nhà nước xml như drawable, ví dụ như.

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <!-- When disabled --> 
    <item android:state_enabled="false" 
     android:drawable="@drawable/your_disabled_spinner_drawable" /> 
    <!-- When selected --> 
    <item android:state_pressed="true" 
     android:drawable="@drawable/your_selected_spinner_drawable" /> 
    <!-- When not selected--> 
    <item 
     android:drawable="@drawable/your_default_spinner_drawable" /> 
</selector> 

http://developer.android.com/guide/topics/resources/drawable-resource.html#StateList

+0

Cảm ơn rất nhiều .. tôi thực sự thậm chí không nghĩ về nó. Mũ .. –

1

Bạn sẽ phải tạo bố cục tùy chỉnh cho trình quay tròn. Tôi nghĩ rằng sau đây XML có thể cung cấp cho bạn một ý tưởng.

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:padding="3dip"> 

    <TextView 
     android:id="@+id/number" 
     android:padding="3dip" 
     android:layout_marginTop="2dip" 
     android:layout_marginLeft="5dip" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"/> 

    <ImageView 
     android:id="@+id/image" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"/> 
</LinearLayout> 
+0

Ngoại lệ bất hợp pháp được ném và chỉ yêu cầu bố cục 'TextView'. Bạn có một mẫu làm việc nào không? – rupinderjeet

0

Chỉ cần sử dụng GIMP như biên tập hình ảnh của bạn và thay đổi màu nền và biên giới với một màu sắc mà bạn thích.

Ví dụ, tôi đã làm hình ảnh này bằng cách chỉnh sửa hiện có tôi tìm thấy trên Internet: http://sdrv.ms/1lRkTbG

3
<Spinner 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:background="@drawable/you_spinner_drawable" /> 

**You can use the below mentioned Drawable to set as background for this spinner**. 

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <!-- When disabled --> 
    <item android:state_enabled="false" 
     android:drawable="@drawable/your_disabled_spinner_drawable" /> 
    <!-- When selected --> 
    <item android:state_pressed="true" 
     android:drawable="@drawable/your_selected_spinner_drawable" /> 
    <!-- When not selected--> 
    <item 
     android:drawable="@drawable/your_default_spinner_drawable" /> 
</selector>