您的位置:首页 > 其它

自定义高斯模糊"Dialog",使用起来只需要new and show

2016-07-30 22:02 253 查看

转载请注明出处:王亟亟的大牛之路

先安利:https://github.com/ddwhan0123/Useful-Open-Source-Android

礼拜1做的一个功能里美工大姐姐需要显示一个点击弹窗+iOS形式的背景虚化的View,公司原有的高斯模糊 Dialog不能满足要求(确切的说是我用的不顺手,然后就手写了一个PopWindows来实现类似效果)

之前想在git上搜一个成品Copy进去结果搜到的是这样



除了那个一年前我在老文章里举例子说到的那个高斯模糊处理的库之外别的star多的第三方库并没有,那正好这周末不太想摸RN的东西,那就造个轮子吧。

先贴下运行效果(因为代码保密问题,不方便贴项目里的实现,看例子意淫下吧)





怎么用这里贴下,尽量做到大家好用

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final Button btn = (Button) findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new BlurPopWin.Builder(MainActivity.this).setContent("该配合你演出的我,眼视而不见,在比一个最爱你的人即兴表演")
//Radius越大耗时越长,被图片处理图像越模糊
.setRadius(3).setTitle("我是标题")
//设置居中还是底部显示
.setshowAtLocationType(0)
.onClick(new BlurPopWin.PopupCallback() {
@Override
public void onClick(@NonNull BlurPopWin blurPopWin) {
Toast.makeText(MainActivity.this, "中间被点了", Toast.LENGTH_SHORT).show();
blurPopWin.dismiss();
}
}).show(btn);
}
});
}
}


不需要初始化,直接拿来用,已经做了Pop部分的全局的点击事件,然后就是各种set,这部分的解释准备拿到git的md文件,实现大致概念说下:

这是一个PopupWindow,然后背景是动态截取屏幕内容,然后做的高斯模糊处理,再设置为Pop后的的背景,整体的dismiss逻辑是重写onTouch实现的。

注:

图像处理时间根据你的锐化程度的增加而增加 正常的处理时间在 100MS上下(我测了10来次),建议3-10就可以了,再大后面就是一片白。

怎么使用以及源码就看git吧 给出地址:

https://github.com/ddwhan0123/BlurPopupWindow

有BUG可以iss提或者扫下面微信我

公共Maven库我会在二次更新后去申请,这一版本就不弄了

下个版本会加入Pop的 CustomView和更多的设置功能,大家想要加什么也可以跟我提。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: