我想要使背景不僅透明,而且還會產生模糊效果。這樣下面的觀點似乎沒有重點。按住電源按鈕後,我希望它看起來像屏幕一樣。有任何想法嗎?創建模糊的透明背景效果
回答
現在窗口標誌已被棄用,您必須模糊自己。我在其他地方回答了這個問題,但這裏是您如何模糊視圖:
您現在可以使用RenderScript庫中的ScriptIntrinsicBlur快速模糊。 Here是如何訪問RenderScript API。以下是我做了模糊視圖和位圖類:
import android.support.v8.renderscript.*;
public class BlurBuilder {
private static final float BITMAP_SCALE = 0.4f;
private static final float BLUR_RADIUS = 7.5f;
public static Bitmap blur(View v) {
return blur(v.getContext(), getScreenshot(v));
}
public static Bitmap blur(Context ctx, Bitmap image) {
int width = Math.round(image.getWidth() * BITMAP_SCALE);
int height = Math.round(image.getHeight() * BITMAP_SCALE);
Bitmap inputBitmap = Bitmap.createScaledBitmap(image, width, height, false);
Bitmap outputBitmap = Bitmap.createBitmap(inputBitmap);
RenderScript rs = RenderScript.create(ctx);
ScriptIntrinsicBlur theIntrinsic = ScriptIntrinsicBlur.create(rs, Element.U8_4(rs));
Allocation tmpIn = Allocation.createFromBitmap(rs, inputBitmap);
Allocation tmpOut = Allocation.createFromBitmap(rs, outputBitmap);
theIntrinsic.setRadius(BLUR_RADIUS);
theIntrinsic.setInput(tmpIn);
theIntrinsic.forEach(tmpOut);
tmpOut.copyTo(outputBitmap);
return outputBitmap;
}
private static Bitmap getScreenshot(View v) {
Bitmap b = Bitmap.createBitmap(v.getWidth(), v.getHeight(), Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(b);
v.draw(c);
return b;
}
}
要申請這一個片段,添加以下onCreateView
:
final Activity activity = getActivity();
final View content = activity.findViewById(android.R.id.content).getRootView();
if (content.getWidth() > 0) {
Bitmap image = BlurBuilder.blur(content);
window.setBackgroundDrawable(new BitmapDrawable(activity.getResources(), image));
} else {
content.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
Bitmap image = BlurBuilder.blur(content);
window.setBackgroundDrawable(new BitmapDrawable(activity.getResources(), image));
}
});
}
注:這種解決方案需要最小的SDK是API 17
編輯:的renderScript被納入支持V8使這個回答道N到API 8.要啓用它使用的gradle 包括這些行到您的gradle這個文件(從這個answer),並從包android.support.v8.renderscript使用的renderScript:
android {
...
defaultConfig {
...
renderscriptTargetApi *your target api*
renderscriptSupportModeEnabled true
}
...
}
如果你想要做的是模糊的activty背後的窗口的背景,那麼你可以使用這個調用從你的活動中(或任何一類,像一個AlertDialog,有一個窗口)
getWindow().addFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND);
更新:此標誌在Android 4.0中已棄用,不再適用。
正是我在找的東西。我很感激! –
已棄用,此設備不再適用於Android L. –
已棄用,編輯您的答案 –
模糊是一個很好的
:將它添加到項目,當你想模糊包你想在一個FrameLayout裏模糊,然後使用該行的觀點後 https://github.com/wasabeef/Blurry:選項,它會很容易地給你的影響正在尋找10
Blurry.with(this).radius(25).sampling(2).onto((ViewGroup) findViewById(R.id.viewToBlurWrapper));
- 1. 創建模糊的背景效果
- 2. 透明模糊的背景
- 3. 透明模糊背景
- 4. 創建一個半透明的模糊背景WPF
- 5. WP7背景模糊效果
- 6. 帶有模糊透明背景的JFrame
- 7. 模糊和透明的按鈕背景
- 8. 在jframe中模糊背景創建透明矩形
- 9. 創建具有微妙模糊效果的透明UIView
- 10. 使用CSS或jQuery創建透明模糊效果
- 11. 如何創建在GDI模糊/半透明效果筆+
- 12. 類似iOS的半透明模態,模糊背後的背景
- 13. Coderwall模糊背景效果與畫布
- 14. 攝像頭背景模糊效果
- 15. 窗口背景圖像模糊效果
- 16. 背景濾鏡:不使用背景的模糊效果?
- 17. Tkinter:創建模糊透明度
- 18. 如何用透明背景創建uiview?
- 19. 在WPF中創建透明背景
- 20. 爲ajax創建背景半透明TabPanel
- 21. 如何創建帶有透明背景
- 22. 用透明背景創建一個DialogFragment
- 23. 如何創建透明背景?
- 24. 爲訂閱框創建透明背景
- 25. 模擬透明背景
- 26. 活動與透明的背景和模糊過濾
- 27. JDialog具有透明背景,模糊了底下的東西
- 28. 模糊半透明窗體的背景(如Aero玻璃)
- 29. 如何讓透明的JFrame模糊背景
- 30. 如何在非透明背景上創建透明文本
你搖滾。這嚴重幫助了我。我添加的一件事是從模糊函數返回的位圖是一個TransitionDrawable。這有助於使模糊效果更加平滑。 –
這很好。謝謝! –
注意BITMAP_SCALE和BLUR_RADIUS常量是如何工作的?謝謝 –