/*
* Copyright (C) 2011 TC Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. You may obtain a copy of the License at
* http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
* either express or implied. See the License for the specific language governing permissions and limitations under the
* License. This code is base on the Android TextView and was Created by titanchen2000@yahoo.com.cn
*
* @author TC
*/
package com.tc.reflect;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.LinearGradient;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.graphics.PorterDuffXfermode;
import android.graphics.PorterDuff.Mode;
import android.graphics.Shader.TileMode;
import android.util.AttributeSet;
import android.widget.TextView;
public class ReflectTextView extends TextView {
public ReflectTextView(Context context) {
super(context);
}
public ReflectTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
public ReflectTextView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void onDraw(Canvas canvas) {
//draw the text from layout()
super.onDraw(canvas);
int height = getHeight();
int width = getWidth();
//make the shadow reverse of Y
Matrix matrix = new Matrix();
matrix.preScale(1, -1);
//make sure you can use the cache
setDrawingCacheEnabled(true);
//create bitmap from cache,this is the most important of this
Bitmap originalImage = Bitmap.createBitmap(getDrawingCache());
//create the shadow
Bitmap reflectionImage = Bitmap.createBitmap(originalImage, 0,
height / 3, width, height / 3, matrix, false);
//draw the shadow
canvas.drawBitmap(reflectionImage, 0, 8 * height / 12, null);
//process shadow bitmap to make it shadow like
Paint paint = new Paint();
LinearGradient shader = new LinearGradient(0, 8 * height / 12, 0,
height, 0x70ffffff, 0x00ffffff, TileMode.CLAMP);
paint.setShader(shader);
paint.setXfermode(new PorterDuffXfermode(Mode.DST_IN));
canvas.drawRect(0, 8 * height / 12, width, height, paint);
}
}
android 文字倒影textshadow
5星 · 超过95%的资源 需积分: 50 201 浏览量
2011-09-28
13:47:37
上传
评论
收藏 42KB RAR 举报
csaa165648
- 粉丝: 7
- 资源: 358
最新资源
- 上市公司-人工智能的采纳程度面板数据(2003-2021年).xlsx
- 第5章spring-mvc请求映射处理
- 2023-04-06-项目笔记 - 第一百十六阶段 - 4.4.2.114全局变量的作用域-114 -2024.04.27
- app-release.apk.1
- soap json 等系列化方式
- c++的五子棋代码,在vs6.0上完美运行
- 基于Javaee的影视创作论坛的设计与实现.rar
- Python导出Mysql数据字典(部分表或全表)
- Java工具类实现输入一个路径,强创建路径、并且鉴权目标路径是否具备修改权限,用于增强程序的健壮性与稳定性,快速开发!
- 资源【STM32+HAL】三轴按键PS2摇杆
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈