练习,自定义TextView(1.1)

重新自定义TextView是非常有趣的事情,跟着Android4高级编程,通过自定义TextView,来敲一下代码:

这个是那么的简单,自定义TextView,新建CustomTextView继承TextView

public class CustomTextView extends TextView {
	private Paint marginPaint;
	private Paint linePaint;
	private int paperColor;
	private float margin;
	public CustomTextView(Context context, AttributeSet attrs, int defStyle) {
		super(context, attrs, defStyle);
		init();
	}

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

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

	private void init() {
		//获得对资源表的引用
		Resources myResources=getResources();
		//创建将在onDraw方法中使用的画刷
		marginPaint=new Paint(Paint.ANTI_ALIAS_FLAG);
		marginPaint.setColor(myResources.getColor(R.color.noted_margin));
		linePaint=new Paint(Paint.ANTI_ALIAS_FLAG);
		linePaint.setColor(myResources.getColor(R.color.noted_lines));
		//获得页面背景色和边缘宽度
		paperColor=myResources.getColor(R.color.noted_paper);
		margin=myResources.getDimension(R.dimen.noted_margin);
	}

	@Override
	protected void onDraw(Canvas canvas) {
		//绘制页面的颜色
		canvas.drawColor(paperColor);

		//绘制边缘
		canvas.drawLine(0, getMeasuredHeight(),getMeasuredWidth(), getMeasuredHeight(), linePaint);

		//draw margin
		canvas.drawLine(margin, 0, margin, getMeasuredHeight(), marginPaint);

		//移动文本,让它跨过边缘
		canvas.save();
		canvas.translate(margin, 0);
		//使用TextView渲染文本
		super.onDraw(canvas);
		canvas.restore();
	}

}

xml:
    <com.example.customtextviewbychen.CustomTextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />

  

  it is very important to learn the knowledge about “onDraw”.

时间: 2024-12-15 13:40:57

练习,自定义TextView(1.1)的相关文章

自定义TextView实现微信动态的全文和收起功能

本示例实现微信朋友圈发布动态后呈现的全文和收起功能. 1,自定义TextView的布局文件——my_text_view.xml 1 <?xml version="1.0" encoding="utf-8"?> 2 <!-- 自定义TextView,实现自动的添加全文和收起功能 --> 3 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/androi

自定义TextView 调用ttf格式字体

自定义TextView 调用ttf格式字体 <strong>将ttf格式文件存放在assets/fonts/下</strong> 注:PC系统字体存放在C:\Windows\Fonts下 import android.content.Context; import android.graphics.Typeface; import android.util.AttributeSet; import android.widget.TextView; /** * 修改字体 * */ p

Android 自定义TextView实现文本内容自动调整字体大小以适应TextView的大小

最近做通讯录小屏机 联系人姓名显示--长度超过边界字体变小 /**   * 自定义TextView,文本内容自动调整字体大小以适应TextView的大小   * @author yzp   */   public class AutoFitTextView extends TextView {       private Paint mTextPaint;       private float mTextSize;          public AutoFitTextView(Context

自定义TextView使之具有跑马灯的效果

一.问题的引入 使用普通的textview跑马的效果,一开始没有焦点事件不会进行滚动,button有焦点事件,但是比较难看,因此需要自定一个TextView 一出生就有焦点 然后需要自定义一个textview FocusedTextView.java package com.xuliugen.mobilesafe.ui; import android.content.Context; import android.util.AttributeSet; import android.view.Vi

Android开发学习笔记-自定义TextView属性模版

如果项目中有很多个控件使用的是同一种样式,则为了方便,可以将样式设置到系统中去,这样使用的时候会方便很多. 下面是自定义样式模版的方法. 1.在style.xml文件中添加自己要设置的样式内容 <resources> <!-- Base application theme, dependent on API level. This theme is replaced by AppBaseTheme from res/values-vXX/styles.xml on newer devic

自定义textView限制字数

ViewController.m #import "JYZTextView.h" #define kTextBorderColor     RGBCOLOR(227,224,216)   #undef  RGBCOLOR #define RGBCOLOR(r,g,b) [UIColor colorWithRed:r/255.0 green:g/255.0 blue:b/255.0 alpha:1] @interface ViewController ()<UITextViewDe

自定义TextView带有各类.ttf字体的TextView

最近项目遇到了将普通文字转化为带有字体样式的文字,这里就涉及到了.ttf文件,我上网百度了不少资料最终终于实现了,现在想想其实并不复杂 1,你需要下载一种.ttf字体文件,你可以从网上找到一种字体的.ttf 文件,放在assets中,比如取名为ll.ttf 2.下面我们可以自定义TextView了,比较简单,设置一下我们导入的.ttf文件即可 1 public class FontsTextView extends android.support.v7.widget.AppCompatTextV

Android之——自定义TextView

转载请注明出处:http://blog.csdn.net/l1028386804/article/details/47082241 在这一篇博文中,将向大家介绍如何以最简单的方式,来自定义Android中的控件,下面我们以自定义TextView为例来向大家介绍如何自定义Android中的控件. 首先,我们来简单说一下Android中自定义控件的原理:创建一个类,继承要自定义的控件类,重写父类的相关方法即可.原理说完了,是不是很简单呢?下面,我们就一起来自定义一个TextView控件吧. 1.创建

Android中自定义TextView的样式

Android自定义TextView的样式,改变背景颜色,边框粗细和颜色,角的弧度等 在res/drawable文件夹下新建一个dd.xml文件,建一个shap,在里面添加需要改变的内容 <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="#ef0909"></solid>//设置背景色 <strok