下面是小编整理的Android中创建倒影效果的工具类(共含5篇),欢迎阅读分享,希望对大家有所帮助。同时,但愿您也能像本文投稿人“奇迹小熊”一样,积极向本站投稿分享好文章。
一、有时候我们需要创建倒影的效果,我们接触最多的都是图片能够创建倒影,而布局依然可以创建倒影,
二、工具类代码
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));
}
这篇教程是向脚本之家的朋友介绍用PS中做出美丽的水中倒影效果方法,教程制作出来的效果非常地漂亮,难度不是很大,推荐到脚本之家,喜欢的朋友一起来学习吧
工具/原料
Adobe Photoshop CS5
方法/步骤
1、我们先选择两张图,在PS软件中打开,接下来我们将把下面图一中的丹顶鹤放到图二中,且丹顶鹤的腿部要有圈状波纹,水中要有倒影
2、用快速选择工具将图中的丹顶鹤抠出来
3、将扣除来的丹顶鹤拖到另一张图片中
4、下面我们按Ctrl+T来调整丹顶鹤的大小和位置,按回车键结束
5、选中背景图层,在丹顶鹤的腿部做圆形选区,滤镜/扭曲/水池波纹
6、在丹顶鹤图层复制图层2为图层2副本,再将图层2副本,编辑/变换/垂直翻转
7、向下移动图层2副本,使其腿部衔接
8、再次编辑图层2副本,滤镜/模糊/高斯模糊,滤镜/扭曲/波纹,
教你用PS中做出美丽的水中倒影效果
,
保存即可
艺术字相比普通文字就已经很美了,但是艺术字也有倒影效果,下面我在WPS演示2013中为大家进行演示,你们感受一下。
①我们插入艺术字之后,复制粘贴,移动到下方,如下图所示。
②然后选中下面的艺术字,进行垂直翻转。
③再次点击艺术字,设置对象格式。
④单击颜色旁的小箭头,设置填充效果。
⑤勾选双色,颜色2设为白色,透明度40,底纹样式为水平。
⑥确定之后,艺术字的倒影效果如下所示。
创建
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);
}
}
};
}
用WPS文档能做出PS效果的字体倒影么?哈,Easy job啦!想知道怎么编辑么?只需要简单的五步操作就可以实现了哦。步骤如下:
①插入艺术字(随便一种艺术字都是可以的哦),输入“WPS字体倒影”。
②选中艺术字,选择“效果设置”——“阴影效果”,将阴影效果设置成无阴影。
③复制并粘贴“WPS字体倒影”字样,然后点击“艺术字”——“旋转”——“垂直旋转”,将文字垂直旋转。
④单击右键,选择“设置对象格式”。接着,填充颜色效果就可以啦。填充效果的相关参数:颜色——“双色”(颜色1不变,颜色2设置成白色),透明度——40%,底纹样式——“水平”。
⑤Last,最重要的一步就是取消艺术字的阴影效果哦。简单吧,PS效果般的字体倒影就这么轻松实现了。