android 自定义Textview多层边框,实现了文字内容闪烁的功能!
来源:互联网 发布:大数据时代书 编辑:程序博客网 时间:2024/04/30 10:00
自定义TextView类:
package com.example.mytext;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.LinearGradient;import android.graphics.Matrix;import android.graphics.Paint;import android.graphics.Shader;import android.util.AttributeSet;import android.widget.TextView;/** * Created by Administrator on 2016/7/11.
*/public class MyText extends TextView { Paint mpaint1; Paint mpaint2; Paint mpaint; int mViewWidth = 0; int mTranslate; Matrix matrix; LinearGradient mLinearGradient; public MyText(Context context, AttributeSet attrs) { super(context, attrs); } public MyText(Context context) { super(context); } public MyText(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Override protected void onDraw(Canvas canvas) { /** * 初始画笔 */ mpaint1 = new Paint(); mpaint1.setColor(Color.YELLOW); mpaint1.setStyle(Paint.Style.FILL); mpaint2 = new Paint(); mpaint2.setColor(Color.GREEN); mpaint2.setStyle(Paint.Style.FILL); //绘制外层 canvas.drawRect(0,0,getMeasuredWidth(),getMeasuredHeight(),mpaint1); //绘制内层 canvas.drawRect(10,10,getMeasuredWidth()-10,getMeasuredHeight()-10,mpaint2); // canvas.drawRect(15,15,getMeasuredWidth()-15,getMeasuredHeight()-15,mpaint2); canvas.save(); //绘制文字前平移10像素 // canvas.translate(10,0); //父类完成的方法,绘制文本 super.onDraw(canvas); canvas.restore(); if (matrix != null){ mTranslate += mViewWidth / 5; if (mTranslate > 2 * mViewWidth){ mTranslate = -mViewWidth; } matrix.setTranslate(mTranslate,0); mLinearGradient.setLocalMatrix(matrix); postInvalidateDelayed(100); } } @Override protected void onSizeChanged(int w, int h, int oldw, int oldh) { super.onSizeChanged(w, h, oldw, oldh); if (mViewWidth == 0){ mViewWidth = getMeasuredWidth(); if (mViewWidth > 0){ mpaint = getPaint(); mLinearGradient = new LinearGradient(0,0,mViewWidth,0,new int []{Color.RED,0xffffffff,Color.BLUE},null, Shader.TileMode.CLAMP); mpaint.setShader(mLinearGradient); matrix = new Matrix(); } } }}
MainActivity:
public class MainActivity extends Activity { MyText text; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); text = (MyText)findViewById(R.id.mytext); text.setText("自定义的TextView,好激动,好激动!"); }}XML:<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.mytext.MainActivity"> <TextView android:text="Hello World!" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/textView" /> <com.example.mytext.MyText android:id="@+id/mytext" android:layout_width="match_parent" android:layout_height="50dp" android:text="MyText" android:layout_below="@+id/textView" android:layout_centerHorizontal="true" android:layout_marginTop="99dp" android:textSize="20sp" android:gravity="center" /></RelativeLayout>
1 0
- android 自定义Textview多层边框,实现了文字内容闪烁的功能!
- Android自定义TextView闪烁文字的效果
- Qt实现自定义QGraphicsItem,实现了一个闪烁的圆,和闪烁的文字
- Handler实现TextView文字闪烁
- 自定义闪烁的TextView
- android中TextView的文字实现动态效果,走马灯效果,闪烁效果
- android中TextView的文字实现动态效果,走马灯效果,闪烁效果
- android中TextView的文字实现动态效果,走马灯效果,闪烁效果
- Android 自定义Textview实现文字两端对齐功能和长按自由选择文字弹出自定义ActionMenu功能(一)
- 【Android UI】自定义TextView实现动态的文字闪动效果
- Android自定义控件 -- 带边框的TextView
- Android UI设计之<四>自定义TextView属性,实现带边框效果的TextView
- android TextView 实现自定义文字点击效果
- Android 自定义TextView实现文字渐变动画
- Android 自定义TextView实现文字渐变动画
- 自定义View之边框文字,闪烁发光文字
- 【TextView】自己实现的TextView,只有显示文字功能。
- Android自定义TextView实现跑马灯功能
- Java运算符
- 自己认为好的博客(java+Android)
- 165. Compare Version Numbers(重要)
- 关于UI的一些笔记
- 记录一下几个Eclipse插件安装地址
- android 自定义Textview多层边框,实现了文字内容闪烁的功能!
- iOS富文本(NSAttributedString)---尽力弄全了
- $(document).on和$('#idname').on区别
- 206ReverseLinkedList
- Android APK打包流程
- Linux kernel mm 异常处理 on arm
- 设置source insight
- HBase Coprocessor 协处理器
- python学习进阶(一)