2012-03-21 50 views
1

如何將android應用程序中的TextView樣式更改爲我喜歡的任何設計?更改TextView樣式的Android應用程序

exmaple in messaging:在氣球內顯示消息(如iPhone inBox)。

感謝,

+0

請不要讓Android應用看起來像iOS應用。 – 2012-11-29 14:04:31

回答

2

回答你的問題,不僅如此在Android的textview但其他view

你將需要一個新的你自己的類,擴展你需要改變風格的視圖。

例如:

public class NewTextView extends TextView{ 

    public NewTextView(){} //just constructor 

    @Override 
    public void onDraw(Canvas canvas){ 
    //this is a main method that do your work. 
    //for example, you will draw a `baloon` like iPhone 
    } 

下面是一個例子代碼,即繪製的EditText每一行的直線(如要在紙打字)。你可以看到這段代碼並學習如何去做。

再次:要做到這一點,你應該有一些關於在an​​droid(畫布或OpenGL)中繪製的知識。

public class EditTextExtra extends EditText { 
    private Rect Rect; 
    private Paint Paint; 

    public EditTextExtra (Context context, AttributeSet attrs) { 
     super(context, attrs); 
     Rect = new Rect(); 
     Paint = new Paint(); 
     Paint.setStyle(Paint.Style.FILL_AND_STROKE); 
     Paint.setColor(Color.BLACK);  
    } 

    @Override 
    protected void onDraw(Canvas canvas) { 

     int count = getHeight()/getLineHeight(); 
     if(getLineCount() > count){ 
      count = getLineCount(); // for long text with scrolling 
     } 
     Rect r = Rect; 
     Paint paint = Paint; 

     int baseline = getLineBounds(0, r); // first line 

     for (int i = 0; i < count; i++) { 
      canvas.drawLine(r.left, baseline + 1, r.right, baseline + 1, paint); 
      baseline += getLineHeight(); // next line 
     } 
     super.onDraw(canvas); 
    } 
} 
+0

感謝您的偉大的意見:) – 2012-03-21 03:42:26

+0

非常感謝計算器承包商,客人=) – 2012-03-21 04:42:06

3

您可以在XML中更改textview的背景屬性或以編程方式更改該屬性。使用9-patch工具創建背景圖像。所以,圖像拉伸不會有問題。

還有一個選項是建立在資源文件夾中的XML如下所示,在這裏你可以做很多的變化(漸變,角,填充等)的圖像

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > 
    <gradient android:startColor="#FF00FF" android:endColor="#FFFF00" 
      android:angle="270"/> 
    <solid android:color="#00000000"/> 
    <stroke android:width="1dp" android:color="@color/round_rect_shape_border"/> 
    <padding android:left="7dp" android:top="7dp" 
      android:right="7dp" android:bottom="7dp" /> 
    <corners android:radius="8dp" /> 
</shape> 

以此爲背景Textview。

+0

甚至你可以去下面的選項 <層列表的xmlns : android =「http://schemas.android.com/apk/res/android」> <位圖機器人:SRC =「@ drawable/yourfilename」android:tileMode =「repeat」/> Pavandroid 2012-03-21 04:26:38

+0

多謝stackoverflow memebers =) – 2012-03-21 04:41:46

相關問題