Android 特效View第三弹之闪烁View

package com.example.empty;import java.util.Timer;import java.util.TimerTask;import android.annotation.SuppressLint;import android.content.Context;import android.graphics.Color;import android.os.Handler;import android.os.Message;import android.util.AttributeSet;import android.widget.TextView;public class FlickerTextView extends TextView{boolean change = false;private Handler handler = null;public FlickerTextView(Context context, AttributeSet attrs) {super(context, attrs);// TODO Auto-generated constructor stubstartFlicker();}@SuppressLint("HandlerLeak")public void startFlicker(){handler = new Handler(){@Overridepublic void dispatchMessage(Message msg) {if(change){change = false;setTextColor(Color.TRANSPARENT); //这个是透明,,=看不到文字}else{change = true;setTextColor(Color.RED);}}};Timer timer = new Timer();TimerTask task = new TimerTask() {@Overridepublic void run() {Message msg = new Message();handler.sendMessage(msg);}};timer.schedule(task,1,300); //参数分别是delay(多长时间后执行),duration(执行间隔)}}package com.example.empty;import android.content.Context;import android.graphics.Canvas;import android.util.AttributeSet;import android.widget.TextView;public class FlickerText extends TextView{public FlickerText(Context context, AttributeSet attrs) {super(context, attrs);// TODO Auto-generated constructor stub}interface STATE{static final int VISIBLE = 1;static final int INVISIBLE = 0;}@Overrideprotected void onDraw(Canvas canvas) {super.onDraw(canvas);switch(getAlphastate()){case STATE.VISIBLE:{setAlpha(STATE.INVISIBLE);break;}case STATE.INVISIBLE:{setAlpha(STATE.VISIBLE);break;}}postInvalidateDelayed(300);}public int getAlphastate(){return (int)getAlpha()== STATE.INVISIBLE ? STATE.INVISIBLE:STATE.VISIBLE;}}package com.example.empty;import java.util.Timer;import java.util.TimerTask;import android.content.Context;import android.os.Handler;import android.os.Message;import android.util.AttributeSet;import android.widget.ImageView;public class FlikerImageView extends ImageView {boolean change = false;public FlikerImageView(Context context, AttributeSet attrs) {super(context, attrs);// TODO Auto-generated constructor stubstartFlicker();}interface STATE {static final int VISIBLE = 255;static final int INVISIBLE = 0;}private Handler handler = new Handler() {@Overridepublic void dispatchMessage(Message msg) {if (change) {change = false;setImageAlpha(STATE.INVISIBLE);} else {change = true;setImageAlpha(STATE.VISIBLE);}}};public void startFlicker() {Timer timer = new Timer();TimerTask task = new TimerTask() {@Overridepublic void run() {Message msg = new Message();handler.sendMessage(msg);}};timer.schedule(task, 1, 300);}}我这里给出了3种实现方案(其实是两种)来实现达到View闪烁的效果。

旅游,放松心情,用眼睛享受风景。

Android 特效View第三弹之闪烁View

相关文章:

你感兴趣的文章:

标签云: