Достижение модальной функции просмотра в Android

Моя цель – установить модальное представление в приложении для Android. Я хотел бы открыть одно представление, фон которого будет прозрачным, чтобы пользователь мог видеть вид сзади.

  1. Я слышал об использовании прозрачной активности, но это может заморозить активность, не так ли?
  2. Я бы хотел, чтобы какой-то материал многократного использования, поскольку это представление вызовет более одного действия.

благодаря

Вы можете сделать прозрачный вид деятельности в этом стиле:

<style name="TransparentActivity" parent="android:Theme.Black.NoTitleBar.Fullscreen"> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:colorBackgroundCacheHint">@null</item> <item name="android:windowIsTranslucent">true</item> <item name="android:windowAnimationStyle">@android:style/Animation</item> <item name="android:windowNoTitle">true</item> <item name="android:windowContentOverlay">@null</item> <item name="android:windowFullscreen">true</item> </style> 

Объявлено в манифесте так:

  <activity android:label="@string/app_name" android:name=".activity.DialogActivity" android:theme="@style/TransparentActivity" > 

Затем я использую это как макет для моего диалога:

 <?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="match_parent" android:layout_width="match_parent" android:id="@+id/containerPageContainer"> <FrameLayout android:layout_height="wrap_content" android:layout_width="match_parent" android:background="@drawable/panel_picture_frame_bg_focus_blue" android:layout_gravity="center" android:id="@+id/dialog"/> </FrameLayout> 

Вы можете раздуть другие макеты и добавить их в @+id/dialog или использовать фрагменты (в зависимости от того, насколько вы храбры).

Надеюсь, что это помогло!

Возможно, вы могли бы использовать Dialog ? Вы можете использовать пользовательский просмотр содержимого, чтобы отображать все, что хотите, и использовать setCancelable(false) .