相关疑难解决方法(0)

如何在Android上创建透明活动?

我想在另一个活动之上创建一个透明的Activity.

我怎样才能做到这一点?

android transparent android-activity

881
推荐指数
15
解决办法
42万
查看次数

如何以编程方式将活动主题化为对话框?

如何以编程方式(不触摸AndroidManifext.xml)设置主题Activity ,使其看起来像一个对话框

注意:我可以修改它AndroidManifext.xml,只要它不需要修改就可以在看起来像普通活动或对话框之间切换.

到目前为止我尝试过的

我根据这个stackoverflow答案尝试了以下内容:

public class DialogActivity extends Activity
{

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        setTheme(android.R.style.Theme_DeviceDefault_Dialog);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_dialog);
        Log.d(TAG,"Build.VERSION.SDK_INT: "+Build.VERSION.SDK_INT); // 23
    }
}
Run Code Online (Sandbox Code Playgroud)

但它最终会在背景中消除掉一切.

我也看到了这个stackoverflow的答案,并试过:

public class DialogActivity extends Activity
{

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        setTheme(android.R.style.Theme_DeviceDefault_Dialog);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_dialog);
        getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
    }
}
Run Code Online (Sandbox Code Playgroud)

但它最终使一切变黑.

做什么?谢谢.

java android android-dialog android-activity

9
推荐指数
1
解决办法
6095
查看次数

Android:透明活动问题

最近,在我们的一个生产应用程序上,透明活动已停止工作。我的意思是它变成了黑色背景而不是透明。当我将活动的背景颜色设置为纯色(即红色、绿色等)时,它就不会出现问题。问题可能是由迁移到 AndroidX 引起的,但我没有证据证明这一点。

经过数小时的调试、测试和阅读相关的 SO 主题,我终于能够确定问题发生的情况。

我的测试环境是一个非常简单的干净项目,有两个活动(您可以在链接下查看完整代码)。

工作状态条件

只有当我的“themes.xml”文件非常简单时,我才能使第二个活动透明。您可以在后台看到第一个活动:

在此处输入图片说明

非工作状态的条件

添加一个简单的样式就足够了,即使里面没有项目也没有父母,导致背景是黑色而不是透明:

在此处输入图片说明

这是我的“themes.xml”:

<resources xmlns:tools="http://schemas.android.com/tools">
    <!-- Base application theme. -->
    <style name="Theme.MyApplication" parent="Theme.AppCompat.Light">
        <item name="android:windowBackground">@android:color/white</item>
    </style>

    <style name="Transparent" parent="Theme.AppCompat.Dialog">
        <item name="android:windowNoTitle">true</item>
        <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:windowTranslucentStatus">true</item>
        <item name="android:statusBarColor">@android:color/transparent</item>
    </style>

    <!--    By removing this style I can make transparent activity to work -->
    <style name="ScrollViewStyle" />

</resources>
Run Code Online (Sandbox Code Playgroud)

和“AndroidManifest.xml”:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.myapplication">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.MyApplication">
        <activity
            android:name=".SecondActivity"
            android:label="@string/title_activity_second"
            android:theme="@style/Transparent" …
Run Code Online (Sandbox Code Playgroud)

android transparent android-theme android-activity

6
推荐指数
1
解决办法
826
查看次数