iOS 7在Android上的模糊效果

6

我正在开发一款采用扁平化设计的新Android应用程序。我想要一个对话框在模糊的背景上显示。效果类似于此照片上的控制中心(不要写关于NDA的内容,这张照片可以在苹果网站上找到):

iOS7

这种效果是否可行?如果是,最重要的问题是:如何实现?

M.


3
如果你的应用程序看起来与iOS 7的扁平化设计相同(或者至少非常相似),那么你很可能会在Play Store上获得差评。当然,可以使用个人风格为应用程序增加一些特色......但是请确保记住Android设计准则,并不要将iOS 7的样式作为你的应用程序的模板。 :) - Alex Lockwood
好问题,我的设计师经常要求这种东西。 - CQM
4个回答

6
是的,这是可能的。你需要使用一个叫做renderscript的东西。 所以你需要从视图中获取位图,可以使用以下代码来完成。
View v // target view to be blurred
v.setDrawingCacheEnabled(true);
Bitmap screenshot = Bitmap.createBitmap(v.getDrawingCache());

现在,使用renderscript获取模糊位图,如此处所示,并将其绘制到您的视图中。

我看到这里使用了renderscript并且会使用GPU,但是它是否快速,因为它需要一直运行? - CQM
请注意,您只能模糊自己活动中可以访问的内容。 - Oded Breiner
这个链接中的RenderScript非常完美,但是需要注意它是用C#编写的,因为这是Xamarin博客。幸运的是,将其转换为Java很容易。 - halileohalilei

0

是的,这是可能的。不要创建对话框,而是创建一个活动,在您的清单中添加android:theme="@android:style/Theme.Dialog"到您的活动中,如下所示:

<activity 
    android:name=".Activity" 
    android:label="@string/title_activity" 
    android:theme="@android:style/Theme.Dialog">
  <intent-filter>
  <action android:name="example.package" /> 
  <category android:name="android.intent.category.DEFAULT" /> 
  </intent-filter>
</activity>

这只会使背景变暗,而不是模糊。 - Oded Breiner

0

0

在Photoshop中创建模糊的位图,并将其设置为Activity/Dialog的背景可绘制对象。


1
我认为这不是提问者想要的,因为那样看起来每次都一模一样。我猜他想要更具动态性的东西,具有霜玻璃对话框的效果。 - satur9nine
@satur9nine,原帖从未提到需要动态生成。但如果这是他的意思,那么模糊效果可能需要在运行时生成。 - Alex Lockwood

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接