我正在研究android框架.我需要修改textview的形状,使其具有圆角.你能帮我解决这个问题吗?
保存在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源代码的那个版本.
| 归档时间: |
|
| 查看次数: |
5476 次 |
| 最近记录: |