2012-04-29 21 views
18

Tôi có thể thấy rằng khi tôi sử dụng lá cờ giống như hiển thị trên API-demo để làm mờ nền, tôi nhận được một cảnh báo rằng nó chấp nhận:Thay thế cho "FLAG_BLUR_BEHIND" trong Android?

"The WindowManager.LayoutParams.FLAG_BLUR_BEHIND lĩnh vực bị phản đối".

Tôi đã đọc về nó và tôi thấy rằng "Làm mờ không còn được hỗ trợ" nữa.

Điều đó có nghĩa là nó sẽ không hoạt động trên các phiên bản trong tương lai? Tại sao họ không dùng nó? Có cách nào khác không? Tôi thực sự thích tính năng này.

+1

https://groups.google.com/forum/?fromgroups#!topic/android-developers/LY4MoxxA_MM nói nó không hoạt động nữa và bạn không thể thay thế nó – zapl

+0

là có một thay thế nào sẽ sử dụng GPU/CPU cho điều này? –

+1

Bạn có thể tự viết nếu bạn chụp màn hình của màn hình hiện tại, làm mờ và sử dụng làm nền cho hộp thoại của bạn hoặc một cái gì đó tương tự nhưng có afaik không có gì được xây dựng trong – zapl

Trả lời

8

ok, có thể không có thay thế nào sử dụng API, trừ khi có thể tôi đã quên mọi thứ.

i tuy nhiên có thể sử dụng mờ, đó là mát mẻ quá, như được viết here:

WindowManager.LayoutParams lp = dialog.getWindow().getAttributes(); 
lp.dimAmount=0.0f; 
dialog.getWindow().setAttributes(lp); 
dialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND); 
+4

một lựa chọn khác được hiển thị ở đây: http: // www.youtube.com/watch?feature=player_embedded&v=Q8m9sHdyXnE#t=3319s có nghĩa là getWindow(). addFlags (WindowManager.LayoutParams.FLAG_DIM_BEHIND) hoặc sử dụng getWindow(). setBackground (new ColorDrawable (0x7f000000) –

+0

'setBackgroundDrawable()' không 'setBackground()' ít nhất là đối với tôi – shkschneider

+2

thực sự, dòng mã trong video của Google là sai. Nó nên nói 'getWindow(). setBackgroundDrawable (new ColorDrawable (0x7000000));' –

1

xem ra rằng

WindowManager.LayoutParams.FLAG_BLUR_BEHIND

bị phản .. (ít nhất là ở Android 4.0 nó dẫn đến một màn hình màu đen trong nền ...)

Reference (Nguồn): http://developer.android.com/reference/android/view/WindowManager.LayoutParams.html

int FLAG_BLUR_BEHIND liên tục này bị phản đối. Làm mờ không còn được hỗ trợ.

public static final int FLAG_BLUR_BEHIND 

Since: API Level 1 
This constant is deprecated. 
Blurring is no longer supported. 

Window flag: blur everything behind this window. 

Constant Value: 4 (0x00000004) 

gì một pitty .. :((là một hiệu ứng đẹp;))

+1

bằng cách nào? đó là một hiệu ứng tuyệt vời. Ngoài ra, làm thế nào để bạn biết (trong trang web API) mà từ đó phiên bản này liên tục không được chấp nhận? Ngoài ra, điều gì sẽ xảy ra nếu tôi sử dụng nó trên Android 4? –

+0

nếu u sử dụng nó trên android 4.0 nền không bị mờ, nó thẳng đen, không có hiệu lực ở tất cả, cũng không nhìn rất tốt, bởi vì trên tất cả các thiết bị khác nó độc đáo mờ ... cho câu hỏi khác của bạn, tôi chỉnh sửa câu trả lời của tôi ở trên: xem có:) – cV2

+0

liên kết bạn đã cung cấp là trang web API, là trang web tôi đã đọc. họ không nói từ phiên bản nào của android tính năng này không có sẵn ... –

0

Tôi nghĩ u nên thử ShowCaseView Thư viện. Để đánh dấu các yếu tố trên Android.

Thư viện ShowcaseView được thiết kế để làm nổi bật và hiển thị các phần ứng dụng cụ thể cho người dùng với lớp phủ đặc biệt và hấp dẫn. Thư viện này rất tuyệt vời để chỉ ra các địa điểm ưa thích cho người dùng, cử chỉ hoặc các mục không rõ ràng nhưng hữu ích.

Github Link: https://github.com/amlcurran/ShowcaseView