我正在听某个事件(使用默认相机应用拍摄的照片)。拍摄照片时,我的广播会运行,并通过对话框创建透明活动。
问题是该活动具有黑色背景并且不透明(没有看到相机应用拍摄的照片)。我使用了TaskAffinity但问题仍然存在?我该怎么办?
广播:
public void onReceive(Context context, Intent intent) {
Intent i = new Intent(context, DialogAct.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
}
清单:
<receiver
android:name=".CameraEventReceiver"
android:enabled="true" >
<intent-filter>
<action android:name="android.hardware.action.NEW_PICTURE" />
<data android:mimeType="image/*" />
</intent-filter>
</receiver>
<activity
android:name=".DialogAct" android:theme="@style/Theme.D1NoTitleDim"
android:launchMode="singleInstance"
android:label="@string/app_name"
android:taskAffinity="com.xxx.newaffinity.DialogAct" >
<intent-filter>
<action android:name="com.xxx.xx.DIALOGACT" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
式:
<style name="Theme.D1NoTitleDim" parent="android:style/Theme.Translucent">
<item name="android:windowNoTitle">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:backgroundDimEnabled">true</item>
<item name="android:background">@android:color/transparent</item>
</style>
我之前尝试过这种风格,但它的工作方式不存在问题。我不知道如何实现透明活动......呵呵:(
答案 0 :(得分:1)
您可以使用此代码:
getWindow().setBackgroundDrawable(
new ColorDrawable(Color.TRANSPARENT));
setContentView(R.layout.xml_editphoto);
答案 1 :(得分:0)
您可以尝试使用此活动进行透明活动
<style name="Theme.Transparent" parent="android:Theme">#03afee
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">true</item>
<item name="android:backgroundDimEnabled">false</item>
</style>