`

如何生成带倒影的Bitmap【转】

 
阅读更多
public static Bitmap createReflectedImage(Context context, Bitmap originalImage) { 
                   //The gap we want between the reflection and the original image 
                   final int reflectionGap = 4; 
                    
                        int width = originalImage.getWidth();
                        int height = originalImage.getHeight();
                         
                   
                        //This will not scale but will flip on the Y axis
                        Matrix matrix = new Matrix();
                        matrix.preScale(1, -1);
                         
                        //Create a Bitmap with the flip matrix applied to it.
                        //We only want the bottom half of the image
                        Bitmap reflectionImage = Bitmap.createBitmap(originalImage, 0, height/2, width, height/2, matrix, false);
                         
                             
                        //Create a new bitmap with same width but taller to fit reflection
                        Bitmap bitmapWithReflection = Bitmap.createBitmap(width
                          , (height + height/2), Config.ARGB_8888);
                       
                       //Create a new Canvas with the bitmap that's big enough for
                       //the image plus gap plus reflection
                       Canvas canvas = new Canvas(bitmapWithReflection);
                       //Draw in the original image
                       canvas.drawBitmap(originalImage, 0, 0, null);
                       //Draw in the gap
                       Paint defaultPaint = new Paint();
                       canvas.drawRect(0, height, width, height + reflectionGap, defaultPaint);
                       //Draw in the reflection
                       canvas.drawBitmap(reflectionImage,0, height + reflectionGap, null);
                        
                       //Create a shader that is a linear gradient that covers the reflection
                       Paint paint = new Paint();
                       LinearGradient shader = new LinearGradient(0, originalImage.getHeight(), 0,
                         bitmapWithReflection.getHeight() + reflectionGap, 0x70ffffff, 0x00ffffff,
                         TileMode.CLAMP);
                      //Set the paint to use this shader (linear gradient)
                       paint.setShader(shader);
                       //Set the Transfer mode to be porter duff and destination in
                       paint.setXfermode(new PorterDuffXfermode(Mode.DST_IN));
                       //Draw a rectangle using the paint with our linear gradient
                       canvas.drawRect(0, height, width,
                       bitmapWithReflection.getHeight() + reflectionGap, paint);
                       
                   return bitmapWithReflection;
           }
分享到:
评论

相关推荐

    Android生成各种特效Bitmap

    Drawable转Bitmap、圆角图片、倒影效果等各种特效。

    Android图片生成倒影

    本文将详细介绍如何在Android中实现图片生成倒影的功能,并结合一个名为`GalleryDemo`的示例来展示这一过程。 首先,我们需要理解Android中的图片处理基础。Android支持多种图像格式,如JPEG、PNG等,它们可以通过`...

    android Bitmap用法总结

    - 生成带倒影的Bitmap:`createReflectionImageWithOrigin`方法通过复制和翻转Bitmap并添加渐变效果实现。 以上就是Android中Bitmap的一些常见用法,包括创建、转换、保存、缩放以及与ImageView的配合使用。在处理...

    android实现图片的倒影效果

    3. **翻转原始图片生成倒影**: 使用Canvas的`translate`和`scale`方法,将原始图片的下半部分翻转并绘制到新创建的Bitmap上。 ```java float height = originalBitmap.getHeight(); canvas.translate(0, height); ...

    Android自定义带倒影和偏转的超炫Gallery

    在这个自定义Adapter中,我们需要覆盖`getView()`方法,为每个项目生成包含倒影和偏转效果的视图。 在`getView()`方法中,我们首先根据数据项加载原始图像,然后创建倒影并应用偏转效果。这里可能需要使用到一些...

    [Android应用源码]-图片倒影效果源码

    10. **性能优化**:对于性能敏感的应用,可以考虑使用视图的`onDraw()`方法来动态生成倒影,而不是一次性生成并保存,这样可以减少内存占用。 以上就是实现Android应用中图片倒影效果的主要知识点,通过理解和运用...

    实现图片倒影

    最后,将原始图片和倒影Bitmap组合到一起,可以创建一个新的Bitmap或者直接在View上绘制。 5. **Bitmap.Config配置**: - `ARGB_8888`:每个像素占用4字节,支持透明度,最常用的配置。 - `RGB_565`:每个像素...

    Android:图片倒影效果

    同时,为了在切换图片时保持倒影效果,可能需要在每次切换时重新计算并生成倒影。 6. **性能优化**:由于倒影生成涉及到较多的位图操作,可能会消耗大量内存。因此,可以考虑使用LruCache或其他缓存机制来存储已经...

    倒影效果+滑动翻转Gallery

    "倒影效果"是指在图像下方生成一个镜像,使得图像看起来像是反射在平面上,增加了视觉吸引力。这种效果在UI设计中常用于创造动态和立体感,尤其是在展示产品或图片时,能提升用户体验。 实现倒影效果通常有两种方法...

    Android倒影效果

    在Android中,我们可以通过对原始图像进行处理,生成其倒影并将其与原图结合来实现这一效果。 Android Studio是Google提供的官方集成开发环境(IDE),专门用于Android应用开发。它提供了一整套工具,包括代码编辑...

    bitmap图片处理工具类

    "Bitmap图片处理工具类" 提供了多种对位图(Bitmap)进行操作的功能,如颜色转换、图像分割、缩放、旋转、调整透明度、生成圆角图片以及文字与倒影效果的绘制。接下来,我们将深入探讨这些知识点。 首先,`...

    android 圆角图片+图片倒影

    接着,我们将翻转后的倒影位图与原图合并到一个新的Bitmap中。 以上就是Android中创建圆角图片和图片倒影的基本原理和实现方法。在实际项目中,你可能需要根据需求进行优化,例如添加阴影效果,或者处理图片边界...

    Android 3D倒影效果源码-IT计算机-毕业设计.zip

    在Android中,可以创建一个Bitmap对象,将原图复制并翻转,然后设置合适的透明度,最后将倒影Bitmap绘制到视图上。 在实际代码中,我们可能会看到以下几个关键部分: 1. 原始图像的加载:通常使用`BitmapFactory....

    安卓Android源码——图片倒影效果源码.zip

    然后,我们将渐变Bitmap与倒影Bitmap合并,确保渐变部分位于倒影的顶部。 3. **合成图像**: 将原始图片、倒影图片以及渐变层组合成一个整体。这可以通过创建一个新的Bitmap对象,然后使用Canvas的`drawBitmap`...

    图片倒影效果

    这种情况下,我们还需要确保每次选择新图片时,都能动态地生成并显示对应的倒影效果。这通常通过监听ImageView的选择事件,并在事件回调中更新Bitmap和倒影。 以上就是如何在Android应用中实现图片倒影效果的详细...

    解析Android中View转换为Bitmap及getDrawingCache=null的解决方法

    Coverflow中需要把一页一页的view转换为Bitmap、以便实现复杂的图形效果(阴影、倒影效果等);再比如一些动态的实时View为便于观察和记录数据、需要临时生成静态的Bitmap。 2.实现方法 1)下面是笔者经常用的一个...

    Android图片倒影效果源码.zip

    首先,需要加载原图到Bitmap对象,然后对Bitmap进行处理,生成倒影。 3. **Bitmap操作** - `createBitmap()`: 创建一个新的Bitmap对象,通常需要指定宽度、高度和配置。 - `copy()`: 复制原Bitmap,用于创建倒影...

    图片倒影、阴影效果

    5. 将新生成的Bitmap设置给ImageView或其他显示组件。 接下来,我们来看看如何在Android Studio中实现阴影效果。在Android API 21(Lollipop)及以上版本,系统提供了`ViewCompat`类的`setElevation()`方法,可以...

    android倒影实现抖动的镜面效果

    `createReflection()`方法用于生成倒影,包括复制原始Bitmap、翻转并添加渐变效果。在`onDraw()`中,我们利用`Math.random()`生成一个随机偏移值,使倒影在每次重绘时位置略有不同,从而产生抖动效果。 为了在实际...

Global site tag (gtag.js) - Google Analytics