Android中创建倒影效果的工具类

| 收藏本文 下载本文 作者:奇迹小熊

下面是小编整理的Android中创建倒影效果的工具类(共含5篇),欢迎阅读分享,希望对大家有所帮助。同时,但愿您也能像本文投稿人“奇迹小熊”一样,积极向本站投稿分享好文章。

Android中创建倒影效果的工具类

篇1:Android中创建倒影效果的工具类

一、有时候我们需要创建倒影的效果,我们接触最多的都是图片能够创建倒影,而布局依然可以创建倒影,

二、工具类代码

import android.graphics.Bitmap;

import android.graphics.Bitmap.Config;

import android.graphics.Canvas;

import android.graphics.LinearGradient;

import android.graphics.Matrix;

import android.graphics.Paint;

import android.graphics.PorterDuff.Mode;

import android.graphics.PorterDuffXfermode;

import android.graphics.Shader.TileMode;

import android.view.View;

/**

* 创建图片倒影的方法

*

* @author

* */

public class ImageReflect {

private static int reflectImageHeight = 90;//倒影的高度

//转化为bitmap

public static Bitmap convertViewToBitmap(View paramView) {

paramView.measure(View.MeasureSpec.makeMeasureSpec(0, 0), View.MeasureSpec.makeMeasureSpec(0, 0));

paramView.layout(0, 0, paramView.getMeasuredWidth, paramView.getMeasuredHeight());

paramView.buildDrawingCache();

return paramView.getDrawingCache();

}

public static Bitmap createCutReflectedImage(Bitmap paramBitmap, int paramInt) {

int i = paramBitmap.getWidth();

int j = paramBitmap.getHeight();

Bitmap localBitmap2 = null;

if (j <= paramInt + reflectImageHeight) {

localBitmap2 = null;

} else {

Matrix localMatrix = new Matrix();

localMatrix.preScale(1.0F, -1.0F);

// System.out.println(j - reflectImageHeight -

// paramInt);

Bitmap localBitmap1 = Bitmap.createBitmap(paramBitmap, 0, j - reflectImageHeight - paramInt, i, reflectImageHeight, localMatrix, true);

localBitmap2 = Bitmap.createBitmap(i, reflectImageHeight, Bitmap.Config.ARGB_8888);

Canvas localCanvas = new Canvas(localBitmap2);

localCanvas.drawBitmap(localBitmap1, 0.0F, 0.0F, null);

LinearGradient localLinearGradient = new LinearGradient(0.0F, 0.0F, 0.0F, localBitmap2.getHeight(), -2130706433, 16777215, TileMode.CLAMP);

Paint localPaint = new Paint();

localPaint.setShader(localLinearGradient);

localPaint.setXfermode(new PorterDuffXfermode(Mode.DST_IN));

localCanvas.drawRect(0.0F, 0.0F, i, localBitmap2.getHeight(), localPaint);

if (!localBitmap1.isRecycled())

localBitmap1.recycle();

System.gc();

}

return localBitmap2;

}

public static Bitmap createReflectedImage(Bitmap paramBitmap, int paramInt) {

int i = paramBitmap.getWidth();

int j = paramBitmap.getHeight();

Bitmap localBitmap2;

if (j <= paramInt) {

localBitmap2 = null;

} else {

Matrix localMatrix = new Matrix();

localMatrix.preScale(1.0F, -1.0F);

Bitmap localBitmap1 = Bitmap.createBitmap(paramBitmap, 0, j - paramInt, i, paramInt, localMatrix, true);

localBitmap2 = Bitmap.createBitmap(i, paramInt, Bitmap.Config.ARGB_8888);

Canvas localCanvas = new Canvas(localBitmap2);

localCanvas.drawBitmap(localBitmap1, 0.0F, 0.0F, null);

LinearGradient localLinearGradient = new LinearGradient(0.0F, 0.0F, 0.0F, localBitmap2.getHeight(), -2130706433, 16777215, TileMode.CLAMP);

Paint localPaint = new Paint();

localPaint.setShader(localLinearGradient);

localPaint.setXfermode(new PorterDuffXfermode(Mode.DST_IN));

localCanvas.drawRect(0.0F, 0.0F, i, localBitmap2.getHeight(), localPaint);

}

return localBitmap2;

}

public static Bitmap createReflectedImage(Bitmap originalImage) {

final int reflectionGap = 4;

int width = originalImage.getWidth();

int height = originalImage.getHeight();

Matrix matrix = new Matrix();

matrix.preScale(1, -1);

Bitmap reflectionImage = Bitmap.createBitmap(originalImage, 0,

height / 2, width, height / 2, matrix, false);

Bitmap bitmapWithReflection = Bitmap.createBitmap(width,

(height + height / 2), Config.ARGB_8888);

Canvas canvas = new Canvas(bitmapWithReflection);

canvas.drawBitmap(originalImage, 0, 0, null);

Paint defaultPaint = new Paint();

canvas.drawRect(0, height, width, height + reflectionGap, defaultPaint);

canvas.drawBitmap(reflectionImage, 0, height + reflectionGap, null);

Paint paint = new Paint();

LinearGradient shader = new LinearGradient(0,

originalImage.getHeight(), 0, bitmapWithReflection.getHeight()

+ reflectionGap, 0x70ffffff, 0x00ffffff,

TileMode.MIRROR);

paint.setShader(shader);

paint.setXfermode(new PorterDuffXfermode(Mode.DST_IN));

canvas.drawRect(0, height, width, bitmapWithReflection.getHeight()

+ reflectionGap, paint);

return bitmapWithReflection;

}

}

三、这里面有很多种方法,可以自己根据需求去选择,

调用示例:

ps:我这是创建多个倒影,所以用了一个for循环。循环操作的是两个图片数组。

for (int k = 0; k < REFLECT_COUNT; k++) {

arrayOfImageView[k].setImageBitmap(ImageReflect.createCutReflectedImage(ImageReflect.convertViewToBitmap(imagereflect[k]), 0));

}

篇2:教你用PS中做出美丽的水中倒影效果

这篇教程是向脚本之家的朋友介绍用PS中做出美丽的水中倒影效果方法,教程制作出来的效果非常地漂亮,难度不是很大,推荐到脚本之家,喜欢的朋友一起来学习吧

工具/原料

Adobe Photoshop CS5

方法/步骤

1、我们先选择两张图,在PS软件中打开,接下来我们将把下面图一中的丹顶鹤放到图二中,且丹顶鹤的腿部要有圈状波纹,水中要有倒影

2、用快速选择工具将图中的丹顶鹤抠出来

3、将扣除来的丹顶鹤拖到另一张图片中

4、下面我们按Ctrl+T来调整丹顶鹤的大小和位置,按回车键结束

5、选中背景图层,在丹顶鹤的腿部做圆形选区,滤镜/扭曲/水池波纹

6、在丹顶鹤图层复制图层2为图层2副本,再将图层2副本,编辑/变换/垂直翻转

7、向下移动图层2副本,使其腿部衔接

8、再次编辑图层2副本,滤镜/模糊/高斯模糊,滤镜/扭曲/波纹,

教你用PS中做出美丽的水中倒影效果

保存即可

篇3:对WPS演示中的艺术字做倒影效果

艺术字相比普通文字就已经很美了,但是艺术字也有倒影效果,下面我在WPS演示2013中为大家进行演示,你们感受一下。

①我们插入艺术字之后,复制粘贴,移动到下方,如下图所示。

②然后选中下面的艺术字,进行垂直翻转。

③再次点击艺术字,设置对象格式。

④单击颜色旁的小箭头,设置填充效果。

⑤勾选双色,颜色2设为白色,透明度40,底纹样式为水平。

⑥确定之后,艺术字的倒影效果如下所示。

篇4:BitmapData类的noise方法轻松创建电视花屏效果

创建

BitmapData类的noise方法轻松创建电视花屏效果,

BitmapData类的noise方法轻松创建电视花屏效果

。点击查看Flash:

space.flash8.net/bbs/attachment.php?aid=311480

主场景第一帧:

右键菜单 = new ContextMenu;

右键菜单.hideBuiltInItems();

右键菜单.customItems.push(new ContextMenuItem(’sxl001’, dj_menu0, false));

function dj_menu0() {

getURL(’space.flash8.net/space/?57’, ’_blank’);

}

_root.menu = 右键菜单;

Stage.scaleMode = “noScale”;

import flash.display.BitmapData;

var myBitmapData:BitmapData = new BitmapData(400, 300);

this.createEmptyMovieClip(“myMovieClip2”, 1);

myMovieClip2._x = myMovieClip0._x;

myMovieClip2._y = myMovieClip0._y;

myMovieClip2.attachBitmap(myBitmapData, 1);

_global.k = 1;

function run() {

if (myMovieClip0._currentframe.>7) {

myMovieClip0.gotoAndStop(1);

}

myBitmapData.noise(Math.floor(1000*Math.random()), 0, 255, 1 | 2 | 4 | 8, false);

myMovieClip2._alpha -= 2;

if (myMovieClip2._alpha<=1) {

k++;

myMovieClip2._alpha = 100;

myMovieClip0.nextFrame();

for (var i = 1; i<=7; i++) {

if (i == k) {

this[“m”+i].mm.gotoAndStop(2);

} else {

this[“m”+i].mm.gotoAndStop(1);

}

}

if (k>7) {

k = 1;

m1.mm.gotoAndStop(2);

myMovieClip0.gotoAndStop(1);

}

}

}

for (var i = 1; i<=7; i++) {

this[“m”+i].gotoAndStop(i);

this[“m”+i].mm.gotoAndStop(1);

}

myMovieClip0.gotoAndStop(1);

m1.mm.gotoAndStop(2);

_root.onEnterFrame = run;

for (var i = 1; i<=7; i++) {

this[“m”+i].no = i;

this[“m”+i].onPress = function() {

delete _root.onEnterFrame;

_root.onEnterFrame = run;

for (var j = 1; j<=7; j++) {

if (j == this.no) {

k = j;

_root.myMovieClip0.gotoAndStop(j);

_root[“m”+j].mm.gotoAndStop(2);

} else {

_root[“m”+j].mm.gotoAndStop(1);

}

}

};

}

篇5:不用PS也能在WPS演示中做出字体倒影的效果

用WPS文档能做出PS效果的字体倒影么?哈,Easy job啦!想知道怎么编辑么?只需要简单的五步操作就可以实现了哦。步骤如下:

①插入艺术字(随便一种艺术字都是可以的哦),输入“WPS字体倒影”。

②选中艺术字,选择“效果设置”——“阴影效果”,将阴影效果设置成无阴影。

③复制并粘贴“WPS字体倒影”字样,然后点击“艺术字”——“旋转”——“垂直旋转”,将文字垂直旋转。

④单击右键,选择“设置对象格式”。接着,填充颜色效果就可以啦。填充效果的相关参数:颜色——“双色”(颜色1不变,颜色2设置成白色),透明度——40%,底纹样式——“水平”。

⑤Last,最重要的一步就是取消艺术字的阴影效果哦。简单吧,PS效果般的字体倒影就这么轻松实现了。

Android开发工具类(小方法)

人在倒影中书写往昔作文

android app的类响应式设计

Android中的Theme和Style

在Word文档中创建超链接

在Word 文档中设置框三维效果

flash中实现场景转换中的马赛克效果

证券类简历中自我评价

在Word文档中创建积分公式

中金财务类招聘笔试题目

Android中创建倒影效果的工具类(推荐5篇)

欢迎下载DOC格式的Android中创建倒影效果的工具类,但愿能给您带来参考作用!
推荐度: 推荐 推荐 推荐 推荐 推荐
点击下载文档 文档为doc格式

猜你喜欢

NEW
点击下载本文文档