当前位置:实例文章 » HTML/CSS实例» [文章]自定义view(一)----自定义TextView

自定义view(一)----自定义TextView

发布人:shili8 发布时间:2025-01-24 21:05 阅读次数:0

**自定义View系列文章第一篇:自定义TextView**

在Android开发中,自定义View是非常重要的一部分。通过自定义View,我们可以根据自己的需求创建出各种各样的UI组件,从而使我们的APP更加个性化和独特。

在这一篇文章中,我们将学习如何自定义一个基本的TextView。这个TextView将支持多种字体样式、颜色和大小等功能。

###1. 创建自定义TextView类首先,我们需要创建一个名为`CustomTextView.java`的Java类,用于定义我们的自定义TextView。

java// CustomTextView.javapublic class CustomTextView extends TextView {
 public CustomTextView(Context context) {
 super(context);
 }

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

 public CustomTextView(Context context, AttributeSet attrs, int defStyleAttr) {
 super(context, attrs, defStyleAttr);
 }
}

在这个类中,我们继承了`TextView`类,并重写了三个构造函数。这些构造函数用于初始化我们的自定义TextView。

###2. 定义XML布局接下来,我们需要创建一个名为`custom_text_view.xml`的XML文件,用于定义我们的自定义TextView的UI。
xml




 



在这个XML文件中,我们定义了一个`LinearLayout`布局,并将我们的自定义TextView添加到了其中。

###3. 在Activity中使用自定义TextView最后,我们需要在一个Activity中使用我们的自定义TextView。
java// MainActivity.javapublic class MainActivity extends AppCompatActivity {

 @Override protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);

 CustomTextView customTextView = findViewById(R.id.custom_text_view);
 customTextView.setText("Hello, World!");
 customTextView.setTextSize(36);
 customTextView.setTextColor(Color.RED);
 }
}

在这个Activity中,我们找到我们的自定义TextView,并设置了其文本、大小和颜色。

###4. 添加字体样式支持为了添加字体样式支持,我们需要修改我们的自定义TextView类。
java// CustomTextView.java (更新)

public class CustomTextView extends TextView {

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

 public CustomTextView(Context context, AttributeSet attrs) {
 super(context, attrs);

 // 添加字体样式支持 TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.CustomTextView);
 int style = typedArray.getInt(R.styleable.CustomTextView_style,0);
 switch (style) {
 case0:
 setTypeface(Typeface.defaultFromStyle(Typeface.NORMAL));
 break;
 case1:
 setTypeface(Typeface.defaultFromStyle(Typeface.BOLD));
 break;
 case2:
 setTypeface(Typeface.defaultFromStyle(Typeface.ITALIC));
 break;
 }
 typedArray.recycle();
 }

 public CustomTextView(Context context, AttributeSet attrs, int defStyleAttr) {
 super(context, attrs, defStyleAttr);
 }
}

在这个更新的类中,我们添加了字体样式支持,通过使用`TypedArray`来获取自定义属性。

###5. 在XML布局中添加字体样式支持为了在XML布局中添加字体样式支持,我们需要修改我们的XML文件。
xml




 



在这个更新的XML文件中,我们添加了一个`app:style`属性,用于设置字体样式。

###6. 在Activity中使用字体样式支持最后,我们需要在Activity中使用字体样式支持。
java// MainActivity.java (更新)

public class MainActivity extends AppCompatActivity {

 @Override protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);

 CustomTextView customTextView = findViewById(R.id.custom_text_view);
 customTextView.setText("Hello, World!");
 customTextView.setTextSize(36);
 customTextView.setTextColor(Color.RED);
 customTextView.setStyle(Typeface.BOLD); // 使用字体样式支持 }
}

在这个更新的Activity中,我们使用了字体样式支持,通过设置`style`属性来改变字体样式。

### 结论在这一篇文章中,我们学习了如何自定义一个基本的TextView,并添加了字体样式支持。我们通过创建一个名为`CustomTextView.java`的Java类、修改XML布局和Activity代码来实现这一点。

其他信息

其他资源

Top