2013-08-26 17 views
6

Pracuję nad nową aplikacją na Androida zaprojektowaną w naprawdę płaskim stylu. Chcę mieć DialogAlert, który pojawia się na rozmytym tle. Efekt podobny do centrum sterowania na tym zdjęciu (nie piszę o NDA, to zdjęcie jest dostępne na stronie internetowej firmy Apple):Rozmycie z iOS 7 w Androidzie

iOS7

Czy to możliwe? Jeśli tak, najważniejsze pytanie: jak?

M.

+3

Prawdopodobnie otrzymasz złe recenzje w Sklepie Play, jeśli twoja aplikacja wygląda identycznie (lub przynajmniej bardzo podobnie) z płaską konstrukcją iOS 7. Oczywiście, możesz wzbogacić swoją aplikację własnym stylem ... ale pamiętaj o zachowaniu wytycznych dotyczących projektowania Androida i nie używaj stylu iOS 7 jako szablonu dla swojej aplikacji. :) –

+0

Dobre pytanie, moi projektanci proszą o tego rodzaju rzeczy dużo – CQM

Odpowiedz

0

Tak, jest to możliwe. Zamiast tworzenia Dialog, Tworzenie i działalności i manifestu dodać android:theme="@android:style/Theme.Dialog" do swojej działalności jak poniżej:

<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> 
+0

To tylko przyciemni tło, nie zamazuje go. –

0

Utwórz niewyraźną bitmapę w programie Photoshop i ustaw jako tło do rysowania Activity/Dialog.

+1

Nie sądzę, że to jest to, czego szuka pytający, który wyglądałby tak samo w 100% przypadków. Zgaduję, że chce czegoś bardziej dynamicznego, który ma efekt dialogu z matowego szkła. – satur9nine

+0

@ satur9nine OP nigdy nie wspominał o tym, że musi być dynamiczny. Ale jeśli o to mu chodziło, to tak, może być konieczne wygenerowanie rozmytego efektu w czasie wykonywania. –

6

Tak, to jest możliwe, musisz użyć czegoś, co nazywa się renderscript. , więc potrzebna jest bitmapa z widoku, co można zrobić za pomocą następującego kodu.

View v // target view to be blurred 
v.setDrawingCacheEnabled(true); 
Bitmap screenshot = Bitmap.createBitmap(v.getDrawingCache()); 

Teraz użyj renderscript uzyskać niewyraźne bitmapę pokazany tutaj http://blog.neteril.org/blog/2013/08/12/blurring-images-on-android/ i wyciągnąć go na widoku.

+0

Widzę, że używa on renderscript i używa Gpu, ale czy to jest szybkie, skoro ma to cały czas wpływ? – CQM

+0

Pamiętaj, że możesz rozmytać tylko treści, do których możesz uzyskać dostęp z własnej aktywności. –

+0

RenderScript w łączu działa idealnie, jednak należy pamiętać, że jest napisany w języku C#, ponieważ jest to blog Xamarin. Na szczęście jest to praca dzieci, aby przekonwertować ją na Javę. – halileohalilei

Powiązane problemy