显示广播接收器的透明活动

时间:2013-12-17 05:20:07

标签: android broadcastreceiver

我正在听某个事件(使用默认相机应用拍摄的照片)。拍摄照片时,我的广播会运行,并通过对话框创建透明活动。

问题是该活动具有黑色背景并且不透明(没有看到相机应用拍摄的照片)。我使用了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>

我之前尝试过这种风格,但它的工作方式不存在问题。我不知道如何实现透明活动......呵呵:(

2 个答案:

答案 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>