安卓虚化背景的实现
2017-11-18 16:33
288 查看
之前有一个需求就是要实现类似音乐播放器的虚化背景。在此整理一下
首先看看效果:
一、引入的包
compile 'jp.wasabeef:glide-transformations:2.0.2'
二、MainActivity
package com.example.dell.myapplication; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.WindowManager; import android.widget.ImageSwitcher; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //设置全屏 getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.activity_main); ImageSwitcher imgView = (ImageSwitcher) findViewById(R.id.imgView); //图片地址【测试】 String imgUrl="http://www.hishop.com.cn/uploads/150914/21678-150914112244436.jpg"; Tool.setViewBlur(this,imgUrl,R.mipmap.ic_launcher, imgView); } }
三、activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <FrameLayout 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" tools:context="com.example.dell.myapplication.MainActivity" > <ImageSwitcher android:id="@+id/imgView" android:layout_width="match_parent" android:layout_height="match_parent" android:foreground="#62393939" /> </FrameLayout>
三、Tool工具类
package com.example.dell.myapplication; import android.content.Context; import android.view.View; import android.widget.FrameLayout; import android.widget.ImageSwitcher; import android.widget.ImageView; import android.widget.ViewSwitcher; import com.bumptech.glide.Glide; import com.bumptech.glide.load.engine.DiskCacheStrategy; import jp.wasabeef.glide.transformations.BlurTransformation; /** * Created by burro on 2017/11/14. */ public class Tool { // 设置图片虚化背景 public static void setViewBlur(final Context context, String path, int defImage, ImageSwitcher imgView) { final BlurTransformation btf = new BlurTransformation(context, 10, 10); imgView.setFactory(new ViewSwitcher.ViewFactory() { @Override public View makeView() { ImageView view = new ImageView(context); view.setLayoutParams(new FrameLayout.LayoutParams( FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT)); view.setScaleType(ImageView.ScaleType.CENTER_CROP); return view; } }); Glide.with(context) .load(isReal(path) ? path : defImage) .diskCacheStrategy(DiskCacheStrategy.RESULT) .bitmapTransform(btf) .crossFade() .into((ImageView) imgView.getCurrentView()); } private static boolean isReal(String string) { return string != null && string.length() > 0 && !string.equals("null"); } } 到此就可以实现上述效果~
相关文章推荐
- opencv在手机上实现照片背景虚化
- cocos2d-x实现视频做背景层-安卓版
- 原创安卓手机QQ7.0登录界面动态背景视频实现方案
- 【安卓自定义控件】自定义ViewGroup实现透明背景的ViewPager效果
- 安卓的GifView实现动画效果,GifView背景为黑色问题
- 安卓平台实现高斯模糊背景Dialog
- PhotoShop CS6实现照片背景虚化效果
- 实现图片模糊(背景虚化)
- 安卓自定义圆角Button,继承Button类实现在xml设置圆角半径和背景颜色和点击背景颜色
- 安卓canvas实现拖动显示大背景图片
- Dialog实现背景虚化了
- Swift - 实现毛玻璃效果(Blur、模糊、虚化背景元素)
- 安卓Dialog实现透明背景
- opencv图像处理之在手机上实现背景虚化
- quick-cocos2dx实现弹窗背景虚化
- 安卓渐变背景的实现
- 使用jQuery实现,点击显示弹框,背景虚化,点击空白处,弹框消失
- Cocos2d-js 实现弹窗背景虚化效果
- android 中毛玻璃效果(背景虚化)的实现
- opencv图像处理之在手机上实现背景虚化