2011-12-05 38 views
10

Tôi đang cố gắng đặt văn bản ở mức toàn cầu và không thể tìm hoặc tìm cách để làm điều đó.Android: Làm cách nào để đặt văn bản cho bố cục?

Ví dụ tôi có một cái gì đó như thế này:

<?xml version="1.0" encoding="utf-8"?> 

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id = "@+id/Table" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:shrinkColumns="*" 
     android:stretchColumns="*"> 
</TableLayout> 
</ScrollView> 

Các TableRows và TextView mình được tạo ra tự động tùy thuộc vào người dùng nhập vào.

Vấn đề là tôi muốn đặt văn bản cơ sởSize toàn cầu dựa trên tệp tài nguyên mà không cần phải đi và chạm vào một loạt mã. Có cách nào để nói cho ứng dụng không, "ứng dụng này, sử dụng nó làm textSize cơ bản của bạn cho tất cả textViews?"

Hoặc nói cách khác, trong HTML tôi có thể đặt kích thước phông chữ ở cấp cơ thể, div và bảng. Có một cái gì đó tương tự tôi có thể làm ở một bố trí (LinearLayout, TableLayout, ScrollView, vv) cấp?

Trả lời

13

Để đặt kiểu toàn cầu cho tất cả TextView s, hãy đặt thuộc tính android:textViewStyle trong chủ đề tùy chỉnh và áp dụng chủ đề cho ứng dụng hoặc hoạt động riêng lẻ của bạn.

Mã giả:

<style name="MyTheme" parent="android:Theme"> 
    <item name="android:textViewStyle">@style/MyTextView</item> 
</style> 

<style name="MyTextView" parent="android:Widget.TextView"> 
    <item name="android:textSize">14sp</item> 
</style> 

... 

<activity android:theme="@style/MyTheme"> 
    ... 
+0

nhờ đó đã làm các trick. Tôi googled trong nhiều giờ và không thể tìm thấy nó. Cảm ơn một lần nữa. –

+0

ngọt ngào, vui mừng được giúp đỡ! –

+1

Cũng cần lưu ý rằng "bạn nên chọn sp (pixel độc lập theo tỷ lệ) để xác định kích thước văn bản. Hệ số tỷ lệ sp phụ thuộc vào cài đặt người dùng và hệ thống có kích thước tương tự như đối với dp." http://developer.android.com/guide/practices/screens_support.html#screen-independence – scottyab

0

Hoặc nếu bạn muốn thiết lập mặc định tất cả xung quanh phong cách văn bản nhưng ghi đè lên các bộ phận của nó cho những thứ nhất định (như các nút trong ví dụ này), bạn có thể làm một cái gì đó như thế này:

 <style name="whiteText" parent="@android:style/TextAppearance.Medium"> 
      <item name="android:textStyle">normal</item> 
      <item name="android:textColor">@android:color/white</item> 
     </style> 
     <style name="buttonStyle" parent="@android:style/Widget.Button"> 
      <item name="android:textAppearance">@style/whiteText</item> 
      <item name="android:textStyle">bold</item> 
      <item name="android:textColor">@android:color/black</item> 
      <item name="android:gravity">center</item> 
      <item name="android:background">@drawable/pinkbutton</item> 
      <item name="android:cacheColorHint">@android:color/transparent</item> 
      <item name="android:minHeight">50.0dip</item> 
     </style> 
     <style name="DarkTheme" parent="@android:style/Theme.Black.NoTitleBar"> 
      <item name="android:buttonStyle">@style/buttonStyle</item> 
      <item name="android:textAppearance">@style/whiteText</item> 
     </style> 

lẽ là nơi tốt nhất duy nhất của bạn để bắt đầu mặc dù sẽ là: http://developer.android.com/design/style/index.html

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