Изменение формы текстового представления в платформе Android

1

Я работаю над фреймворками для Android. Мне нужно изменить форму текста, чтобы он имел закругленные углы. Не могли бы вы помочь мне в этом вопросе?

Теги:
textview

1 ответ

6
Лучший ответ

Файл XML, сохраненный в res/drawable/gradient_box.xml:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <gradient
        android:startColor="#FFFF0000"
        android:endColor="#80FF00FF"
        android:angle="45"/>
    <padding android:left="7dp"
        android:top="7dp"
        android:right="7dp"
        android:bottom="7dp" />
    <corners android:radius="8dp" />
</shape>

Этот макет XML применяет форму, пригодную для просмотра:

<TextView
    android:background="@drawable/gradient_box"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content" />

Этот код приложения получает форму с возможностью рисования и применяет ее к виду: Ресурсы res = getResources(); Drawable shape = res. getDrawable (R.drawable.gradient_box);

TextView tv = (TextView)findViewByID(R.id.textview);
tv.setBackground(shape);

Скопировать и вставить из http://developer.android.com/guide/topics/resources/drawable-resource.html, первый результат, когда вы google "android textView закругленные углы"

[EDIT]

Как вы хотите изменить источник инфраструктуры Android, вы можете изменить стиль TextView, изменив Drawables по умолчанию. В источниках различные Drawables сгруппированы во внутренний класс, называемый Drawables:

class Drawables {
        final Rect mCompoundRect = new Rect();
        Drawable mDrawableTop, mDrawableBottom, mDrawableLeft, mDrawableRight;
        int mDrawableSizeTop, mDrawableSizeBottom, mDrawableSizeLeft, mDrawableSizeRight;
        int mDrawableWidthTop, mDrawableWidthBottom, mDrawableHeightLeft, mDrawableHeightRight;
        int mDrawablePadding;
    }

Просто измените эти Drawables, как вам нравится, и вы изменили TextView.

Я имею в виду эту версию TextView sources.

  • 0
    ответ, который вы настаивали, действителен только для уровня приложения, но не для фреймворка. На самом деле я хочу изменить открытый исходный код Android таким образом, чтобы форма textview изменялась, что означает, что всякий раз, когда мы обращаемся к textview на уровне приложения, тогда textview с моей указанной формой должен отображаться
  • 0
    @ Нараяна: Проверьте мое обновление;)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню