android 字体倒影,android实现TextView文字倒影效果

本文展示了如何在Android中使用TextView实现动态时间显示,并结合getDrawingCache()方法创建文字倒影效果。通过继承自TextView的自定义TimeView组件,实现实时更新和倒影显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天记录一下TextView的倒影效果,显示一串文字,然后在文字的下方显示出它的倒影,先上效果图:

9315012956be136a649bbd2ec6782b9d.png

最重要的就是View中getDrawingCache()方法,该方法可以获取cache中的图像,然后绘制出来。

废话不多说,我是想写一个带有倒影的时间,时间可以走动。首先先写一个带有时间走动的View,这个很简单,获取当前时间,然后开启一个线程,隔一秒获取当前时间一次,然后显示在TextView上,当然,我们写控件,就需要继承TextView,代码如下:

package com.alex.reflecttextview;

import java.uTIl.Calendar;

import android.content.Context;

import android.os.Handler;

import android.os.Message;

import android.text.format.DateFormat;

import android.uTIl.AttributeSet;

import android.widget.TextView;

public class TImeView extends TextView {

private staTIc final int MESSAGE_TIME = 1;

public TimeView(Context context, AttributeSet attrs) {

super(context, attrs);

new TimeThread().start();

}

public class TimeThread extends Thread {

@Override

public void run() {

do {

try {

Message msg = new Message();

msg.what = MESSAGE_TIME;

mHandler.sendMessage(msg);

Thread.sleep(1000);

} catch (InterruptedException e) {

e.printStackTrace();

}

} while (true);

}

}

private Handler mHandler = new Handler() {

@Override

public void handleMessage(Message msg) {

super.handleMessage(msg);

switch (msg.what) {

case MESSAGE_TIME:

setTime();

break;

default:

break;

}

}

};

public void setTime() {

long sysTime = System.currentTimeMillis();

Calendar calendar = Calendar.getInstance();

calendar.setTimeInMillis(sysTime);

String sysTimeStr = DateFormat.format(“hh:mm”, sysTime).toString();

if(calendar.get(Calendar.AM_PM) == 0) {

sysTimeStr += “ AM”;

} else {

sysTimeStr += “ PM”;

}

setText(sysTimeStr.replace(“1”, “ 1”));

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值