2012-03-21 4 views
1

Как изменить стиль TextView в приложении Android для любого дизайна, который я предпочитаю?Изменение стиля Android-приложений для Android

для exmaple в обмене сообщениями: чтобы показать сообщение внутри воздушного шара (например, в iPhone inBox).

спасибо,

+0

Не делайте приложение для Android похожим на iOS, пожалуйста. –

ответ

2

Ответ на ваш вопрос не только к textview, но и другие view в Android.

Вам понадобится новый класс self-self, который расширит представление, которое вам нужно изменить.

, например:

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 (как вы набираете в работе). Вы можете увидеть этот код и научиться делать это.

Снова: для этого вы должны иметь некоторые знания о рисовании в android (Canvas или 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

Спасибо за ваш большой комментарий :) –

+0

Большое спасибо StackOverflow =) ЧЛЕНОВ –

3

Вы можете изменить атрибут фона в текстовом виде в XML или программно, вы можете это сделать. Используйте инструмент 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"> <углы android: bottomRightRadius = "30dp" андроид: bottomLeftRadius = "30dp" андроид: topLeftRadius = "30dp" андроид: topRightRadius = "30dp" /> <растровый андроид: SRC = "@ drawable/yourfilename" android: tileMode = "repeat" /> Pavandroid

+0

спасибо alot stackoverflow memebers =) –

Смежные вопросы