2014-10-22 24 views
5

All, Tôi đang tùy biến một bảng chọn thành phố, trong đó sử dụng ba numberPicker bên trong, như thế này: enter image description hereLàm thế nào để giảm kích thước phông chữ trong NumberPicker

của một bảng chọn tỉnh thành phố khu vực của Trung Quốc.

Mã:

String[] areas = get_from_somewhere(); 
areaPicker.setDisplayedValues(areas); 

Tôi muốn giảm kích thước font chữ, lời khuyên nào?

Giải pháp: Refer to this

+0

bạn có thể đang sử dụng 'Chế độ xem bánh xe 'tùy chỉnh mở rộng' Chế độ xem' phải không? – Rustam

+0

@Rustam yes, tôi muốn có một WheelView theo phong cách android. thành lập một mẫu trên Github https://github.com/ywenblocker/Provinces-Picker-wheel, nhưng nó không phù hợp với Chủ đề Holo. Cung cấp cho tôi thêm thông tin, plz – Ninja

+0

sử dụng tốt hơn https://github.com/mstorsjo/vlc-android/tree/master/java-libs/WheelView/src/kankan/wheel/widget – Rustam

Trả lời

7

Bạn có thể mở rộng mặc định NumberPicker trong bạn lớp Tuỳ chỉnh CustomNumberPicker cho việc này:

public class CustomNumberPicker extends NumberPicker { 

    public NumberPicker(Context context, AttributeSet attrs) { 
     super(context, attrs); 
    } 

    @Override 
    public void addView(View child) { 
     super.addView(child); 
     if(child instanceof EditText) { 
      ((EditText) child).setTextSize(25); 
     } 
    } 
} 

Bây giờ thay thế hiện tại NumberPicker của bạn trong xml với CustomNumberPicker:

<com.pkg.name.CustomNumberPicker 
    android:id="@+id/number_picker" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" /> 
+0

Cảm ơn câu trả lời của bạn, tôi đặt một breakpoint trên ((EditText) xem) .setTextSize (25); Nhưng không có gì xảy ra – Ninja

+0

Bạn có sử dụng CustomNumberPicker thay vì NumberPicker trong xml hoặc hoạt động của bạn không? –

+0

Có, tôi sử dụng "provincePicker = new SmallSizeNumberPicker (ngữ cảnh, null);" trong hàm tạo của tôi, điểm ngắt không bao giờ gọi. Tôi tìm kiếm từ khóa 'addView (' trong nguồn của NumberPicker.java và không nhận được gì. – Ninja

8

Mặc dù về mặt kỹ thuật không thay đổi kích thước phông chữ, kích thước của văn bản có thể được thay đổi bằng cách thay đổi tỷ lệ của toàn bộ Chế độ xem NumberPicker.

<NumberPicker 
    android:id="@+id/number_picker" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:scaleX=".7" 
    android:scaleY=".7"/> 
1

Dựa trên câu trả lời của John Starbird.

Bạn thêm kiểu.

<style name="NumberPickerText"> 
    <item name="android:textSize">11dp</item> 
</style> 

Thêm kiểu vào bộ chọn số của bạn trong XML.

android:theme="@style/NumberPickerText" 
Các vấn đề liên quan