`

让一张图片从模糊慢慢变清晰动画过程

阅读更多





import java.io.IOException;
import java.io.InputStream;

import android.app.Activity;
import android.content.Context;
import android.content.res.AssetManager;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.Handler;
import android.widget.ImageView;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;

import com.enrique.stackblur.StackBlurManager;

public class MainActivity extends Activity {
    
	private ImageView    iv;
	private SeekBar      seekBar;
	private StackBlurManager stackBlurManager;
	private String IMAGE_TO_ANALYZE = "android_platform_256.png";
	private int blurMode=0;
	private int radius=30;
	private int step=2;
	Handler handler = new Handler();
	Runnable runnable = new Runnable() {
		@Override
		public void run() {
			// TODO Auto-generated method stub
			radius -= step;
			if (radius < 0) {
				handler.removeCallbacks(runnable);
				return;
			}
			onBlur(radius);
			handler.postDelayed(this, 30);
		}
	};

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		iv=(ImageView)findViewById(R.id.imageView);
		seekBar=(SeekBar)findViewById(R.id.blur_amount);
		
		stackBlurManager = new StackBlurManager(getBitmapFromAsset(this, "av.png"));
		onBlur(radius);
		
		handler.postDelayed(runnable, 1000);
		
		seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
			
			@Override
			public void onStopTrackingTouch(SeekBar seekBar) {
				
			}
			
			@Override
			public void onStartTrackingTouch(SeekBar seekBar) {
				
			}
			
			@Override
			public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
				int radius = progress;
				onBlur(radius);
			}
		});
		
	}
	
	private Bitmap getBitmapFromAsset(Context context, String strName) {
        AssetManager assetManager = context.getAssets();
        InputStream is=null;
        Bitmap bitmap = null;
        try {
            is = assetManager.open(strName);
            bitmap = BitmapFactory.decodeStream(is);
        } catch (IOException e) {
            return null;
        }
        return bitmap;
    }

	public void setBlurMode(int mode) {
		this.blurMode = mode;
		onBlur(radius);
	}

	private void onBlur(int radius) {
		switch(blurMode) {
			case 0:
				iv.setImageBitmap( stackBlurManager.process(radius) );
				break;
			case 1:
				iv.setImageBitmap( stackBlurManager.processNatively(radius) );
				break;
			case 2:
				iv.setImageBitmap( stackBlurManager.processRenderScript(this, radius) );
				break;
		}
	}
}


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#FFF"
    android:gravity="center_horizontal"
    android:orientation="vertical" >

    <SeekBar
        android:id="@+id/blur_amount"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:max="50" />

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        />

</LinearLayout>


https://github.com/qiujuer/ImageBlurring

Medium上采用了的一种新的图片load方式,先显示一张虚化图,再显示完整的图片BlurImageView
http://www.jcodecraeer.com/a/opensource/2015/1112/3681.html
  • 大小: 136.5 KB
  • 大小: 187.1 KB
分享到:
评论

相关推荐

    html5数字模糊滚动变清晰动画特效.zip

    本教程将深入探讨"html5数字模糊滚动变清晰动画特效"这一主题,这是一种利用HTML5的SVG(Scalable Vector Graphics)技术和JavaScript实现的创新效果。 首先,SVG是一种用于描述二维图形的XML格式,它可以提供高...

    html5 svg数字模糊滚动变清晰动画特效

    这款“html5 svg数字模糊滚动变清晰动画特效”利用SVG的特性,结合JavaScript和CSS3,实现了文字数字在滚动过程中由模糊逐渐变为清晰的动态效果。这种效果可以吸引用户的注意力,增强网页的视觉冲击力,常被应用于...

    图片变清晰图片模糊变清晰

    本文将深入探讨如何将模糊的图片变得清晰,主要围绕"图片模糊变清晰"这一主题展开。 首先,我们需要理解为什么图片会模糊。图片模糊可能是由于拍摄时的相机抖动、对焦不准确、景深过浅、光线不足或原图质量较低等...

    JS实现图片加载模糊到清晰

    使用picasa的时候,注意到它首先是显示模糊的图片,然后图片突然变得清晰,这样做有一定的好处&mdash;&mdash;picasa的图片翻页是用javascript实现的,如果直接载入大图,中间势必会有个空档,用户在这中间会感觉很...

    懒人原生css3实现图片由模糊到清晰逐渐加载过程

    在手机移动客户端,我们经常看到图片由模糊到清晰的加载过程 如果抛给你这样一个问题,你会怎么去实现呢 而且是在不用js的基础上实现 今天懒人站长写了这样一个效果,供给大家参考使用 其原理就是...

    默认图片模糊鼠标放上去变清晰

    在网页设计中,提高用户体验是至关重要的,而“默认图片模糊鼠标放上去变清晰”的效果是一种常见的交互设计手法,能够吸引用户的注意力并增加互动性。这个效果主要通过JavaScript库jQuery来实现,它允许开发者轻松地...

    模糊图像变清晰工具

    让模糊不清楚的照片变清晰,去噪点,细节增强的傻瓜式图形处理软件。Digital Camera Enhance 是一款图像清晰处理工具。使用这款软件可以让模糊不清楚的照片变清晰,去噪点,细节增强的傻瓜式图形处理软件;还可以...

    用PS把模糊图像变清晰.pdf

    Photoshop 模糊图像增晰技术 本文将详细介绍如何使用 Adobe Photoshop 将...使用 Photoshop 将模糊图像变清晰的技术可以帮助我们恢复模糊的照片,使其变得更加清晰和美丽。这项技术可以广泛应用于图像编辑和修复领域。

    用PS把图片从模糊变清晰

    ### 使用Photoshop将模糊图片变得清晰 在日常生活中,我们经常会遇到一些拍摄效果不佳的照片,尤其是在光线不足或者拍摄条件不理想的情况下,照片往往会显得比较模糊。对于这种情况,我们可以利用Adobe Photoshop的...

    html5 svg数字模糊滚动变清晰动画特效.zip

    在本示例中,“html5 svg数字模糊滚动变清晰动画特效.zip”文件包含了一个利用HTML5和SVG实现的特效,它可能是一个数字滚动时从模糊逐渐变为清晰的动画效果。 首先,HTML5提供了`&lt;svg&gt;`标签,用于在网页中嵌入矢量...

    正确版C#合成图片类,生成模糊效果,图片更清晰类

    在C#编程语言中,处理图像是一项常见的任务,包括合成图片、添加模糊效果以及提高图片清晰度等。本文将深入探讨这些知识点,并提供一个“正确版”的C#图像处理类库,帮助开发者实现这些功能。 首先,让我们了解什么...

    JS实现鼠标滑过图片慢慢变清晰离开依然留下残影的图片展示效果墙.zip

    在`onmouseout`事件中,我们同样可以使用动画或计时器让图片从清晰状态缓慢回归模糊状态,但此时需要保留一定的透明度,以实现“残影”效果。这可以通过设置一个介于0和1之间的目标透明度,并随着时间推移逐渐接近该...

    jquery+css模糊图片局部清晰效果

    每张图片都应用上述的模糊和清晰效果,当轮播到下一张图片时,重新计算和应用效果。 在实际项目中,可能还需要考虑性能优化,例如限制模糊效果的更新频率,或者使用CSS动画来平滑过渡。另外,为了兼容不支持CSS滤镜...

    简单js图片加载从模糊到清晰代码.zip

    在本文中,我们将深入探讨如何使用JavaScript实现一个简单的图片加载技术,从模糊到清晰的过渡效果。这个技术常用于图片相册或者网站中,优化用户体验,特别是在网络速度较慢时。我们将围绕标题“简单js图片加载从...

    图片由清晰变模糊出现thanks片尾ppt特效模板.rar

    通过设置“淡入”和“淡出”动画,配合“速度”和“延迟时间”,可以让图片从清晰到模糊,或者反之,以达到预期的动态效果。同时,还可以调整动画路径,让模糊效果更具方向性。 4. 文字动画:在“thanks”出现的...

    AKVISRefocus(ps模糊照片变清晰滤镜)v8.1.750.17408官方版(附注册机)

    这款插件的作用就是可以将模糊的照片变得更加清晰,有时候在拍照的时候由于抖动或者像素都问题,照片变得非常模糊,有了这款插件就可以一键将图片变得更加清晰了,拥有丰富的参数供用户调节,支持边调整参数边预览,...

Global site tag (gtag.js) - Google Analytics