第三方应用调用安卓的自由窗口功能,将自身运行在自由窗口中,这个应该怎么做
如果您是在chatgpt搜索的就不要发了,我早就搜过了 有没有真正懂的同学
第三方应用调用安卓的自由窗口功能,将自身运行在自由窗口中,这个应该怎么做
如果您是在chatgpt搜索的就不要发了,我早就搜过了 有没有真正懂的同学
该回答引用GPT:
要实现调用安卓的自由窗口功能,需要在AndroidManifest.xml文件中添加如下代码:
<activity
android:name=".FreeWindowActivity"
android:theme="@style/Theme.AppCompat.NoActionBar"
android:excludeFromRecents="true"
android:resizeableActivity="true"
android:launchMode="singleTask"
android:windowSoftInputMode="adjustResize"
android:configChanges="orientation|screenSize|keyboardHidden"
android:screenOrientation="portrait"
android:showForAllUsers="true"
android:taskAffinity="com.example.freeWindow"
android:allowEmbedded="true"
android:supportsPictureInPicture="true"
android:resizeableActivity="true"
android:windowLayoutInDisplayCutoutMode="shortEdges"
android:windowIsFloating="true"
android:windowIsTranslucent="true"
android:windowAnimationStyle="@android:style/Animation.Activity"
android:label="@string/app_name"
android:icon="@mipmap/ic_launcher"
android:roundIcon="@mipmap/ic_launcher_round"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
然后在Activity中实现自由窗口的功能,可以使用如下代码:
//设置窗口属性
Window window = getWindow();
window.setGravity(Gravity.TOP | Gravity.LEFT);
WindowManager.LayoutParams params = window.getAttributes();
params.x = 0;
params.y = 0;
params.width = WindowManager.LayoutParams.WRAP_CONTENT;
params.height = WindowManager.LayoutParams.WRAP_CONTENT;
window.setAttributes(params);
最后,在Activity的onCreate()方法中调用setContentView()方法,将布局文件设置为自由窗口的内容即可。
如还有疑问,可以私信帮助解决。