当我们改变亮度时,它的活动变得透明 所以我们可以看到主屏幕/后面运行的另一个应用程序。我想在我的自定义搜索栏上(100%与Brightness seekbar相同)。
我的应用主要活动背景颜色为灰色,
我想在搜索栏拖动时:我的活动变得透明并显示背景活动/背景主屏幕,
当拖动在灰色背景上完成恢复正常时。
我的研究:
我搜索透明的活动,我发现了许多问题和许多不同的风格和主题选项。
这是我的最后一次尝试:
<activity android:name=".Activity"
android:theme="@android:style/Theme.Translucent">
每次当我关注StackOverflow答案时,都会收到此错误:
&#34;您需要使用Theme.AppCompat主题(或后代) 。活性&#34;
=&gt;我也尝试,透明背景颜色,透明可绘制,透明清晰,
结果:背景显示为白色,不透明
我只有一个主要活动,具有自定义亮度搜索栏和其他选项。
我的清单文件
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="st.package">
<uses-permission
android:name="android.permission.ACTION_MANAGE_OVERLAY_PERMISSION"/>
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity"
android:theme="@android:style/Theme.Translucent">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<service android:name="st.package.ChatHeadService"
android:exported="true">
</service>
<receiver android:name="MainActivity$switchButtonListener" />
</application>
MainActivity.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="overlayhead.overlayhead.MainActivity"
android:orientation="vertical"
android:windowIsTranslucent="true"
android:id="@+id/LinearLayout"
android:background="@android:color/transparent"
>
答案 0 :(得分:1)
&#34;您需要在此活动中使用Theme.AppCompat主题(或后代)。&#34;
这是因为您需要使用AppCompat主题。因此,您可以在styles.xml中定义自定义主题,并将其用作所需Activity
的主题。
<style name="Theme.AppCompat.Translucent" parent="Theme.AppCompat.NoActionBar">
<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>
</style>
在您的清单文件中,声明Theme.AppCompat.Translucent
为主题
<activity android:name=".MainActivity"
android:theme="@style/Theme.AppCompat.Translucent">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
答案 1 :(得分:1)
对于颜色透明度,你应该提供8位数的颜色代码,其中#之后的前两位数代表百分比的透明度,所以如果你想要50%透明度的白色,你应该把颜色值写成“#50ffffff”。
在java中使用这种技术你可以这样做
yourLayout.setBackgroundColor(Color.parseColor("#"+i+"bdbdbd"));
其中i将从00到99,因为i颜色透明度的值将被更改。因此,根据搜索栏值增加和减少i的值从00到99。