改变Android框架中textview的形状

Dur*_*rga 1 android textview

我正在研究android框架.我需要修改textview的形状,使其具有圆角.你能帮我解决这个问题吗?

das*_*zul 6

保存在res/drawable/gradient_box.xml的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>
Run Code Online (Sandbox Code Playgroud)

此布局XML将可绘制的形状应用于视图:

<TextView
    android:background="@drawable/gradient_box"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content" />
Run Code Online (Sandbox Code Playgroud)

此应用程序代码获取可绘制的形状并将其应用于View:Resources res = getResources(); 可绘制形状= res.getDrawable(R.drawable.gradient_box);

TextView tv = (TextView)findViewByID(R.id.textview);
tv.setBackground(shape);
Run Code Online (Sandbox Code Playgroud)

http://developer.android.com/guide/topics/resources/drawable-resource.html复制并粘贴,当您谷歌"android textView圆角"时的第一个结果

[编辑]

由于您想要更改android框架的源代码,您可以通过更改默认的Drawable来更改TextView的样式.在源代码中,各种Drawable分组在一个名为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;
    }
Run Code Online (Sandbox Code Playgroud)

只需根据需要更改这些Drawable,您就重新定义了TextView.

我指的是TextView源代码的那个版本.