Android - способ отображения граничного текста в TextView? - PullRequest
5 голосов
/ 08 января 2010

Есть ли способ отображать текст с рамками в TextView?

Ответы [ 2 ]

16 голосов
/ 08 января 2010

Я бы предложил расширить TextView
См. Руководство по пользовательским компонентам Android

android_text_border

package samples.test;
public class MyTextView extends TextView {
    public MyTextView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

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

    public MyTextView(Context context) {
        super(context);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        Rect rect = new Rect();
        Paint paint = new Paint();
        paint.setStyle(Paint.Style.STROKE);
        paint.setColor(Color.WHITE);
        paint.setStrokeWidth(3);
        getLocalVisibleRect(rect);
        canvas.drawRect(rect, paint);       
    }
}

Чем использовать его в макете XML:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <samples.test.MyTextView android:layout_width="fill_parent"
        android:layout_height="wrap_content" android:text="@string/hello" />
</LinearLayout>
5 голосов
/ 08 января 2010

Самый простой способ - использовать 9 патчей фона.

<TextView android:id="@+id/txt_target"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="000000000"
            android:gravity="center_vertical"
            android:background="@drawable/textfield_default"
            android:layout_marginRight="5dip" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...