Java 为什么android闪屏不以kitkat&;的横向方向显示;旧设备?
我已在我的android应用程序(具有android API级别14-26的目标支持)中添加了闪屏,如下所示:Java 为什么android闪屏不以kitkat&;的横向方向显示;旧设备?,java,android,splash-screen,android-4.4-kitkat,landscape,Java,Android,Splash Screen,Android 4.4 Kitkat,Landscape,我已在我的android应用程序(具有android API级别14-26的目标支持)中添加了闪屏,如下所示: <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <color android:color="@color/colorPrimary"/> </item> <item>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<color android:color="@color/colorPrimary"/>
</item>
<item>
<bitmap android:src="@drawable/my_logo" android:tileMode="disabled" android:gravity="center" />
</item>
</layer-list>
在我的AndroidManifest.xml中
<activity
android:name=".SplashActivity"
android:theme="@style/SplashTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
我的奇怪问题是:
在棒棒糖和更新的设备上,闪屏在横向和纵向屏幕方向都可以正常工作,但在Kitkat和pre-Kitkat设备上,闪屏仅在纵向屏幕方向工作。我怎样才能让它在kitkat和pre-kitkat设备上也适用于横向定向呢?尝试在java类中使用
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
经过这么多小时的搜索,我终于找到了一个解决我这个奇怪问题的方法,而不是编码方法。不过,这听起来可能有点尴尬, 我想分享它,只是因为它对我有用,而且我认为它对其他人也有帮助。因此,以下是我的解决方法: 原因: 此问题是由默认的home launcher应用程序引起的,该应用程序管理设备横向和纵向屏幕方向的应用程序[我在1.Huawei MediaPad T1 7.0上观察到此问题] 平板电脑2.联想a-319 Rockstar和3.三星Galaxy S Duos 7562]。 但我没有发现任何设备上有任何问题[闪屏工作正常] 在1.三星Galaxy J Max SM-T285YD标签上的任何屏幕方向上 2.三星J 7 Prime手机]有棒棒糖或更新的安卓操作系统 解决方案: 因此,我更改了默认的家庭启动器应用程序 问题华为MediaPad标签的EMUI启动器和飞行启动器 联想a-319[我已经在这个设备上扎根了,所以launcher和 其他联想手机]被替换为 来自google play,现在google还没有正式支持它。作为 三星的Duos 7562不支持Google Now Launcher,它的TouchWiz 启动器被替换为。默认回家后 启动器应用程序更换,现在,所有目标上的问题都解决了 设备
到底是什么问题?它不会切换到lanscape方向?您希望它打开设备旋转还是希望它始终是横向的?您是否尝试在您的清单中的启动活动标记中添加
screenOrientation
属性?我希望启动屏幕以任何屏幕方向显示启动屏幕我启动应用程序时,它必须显示。例如,如果我以横向方向打开应用程序,启动屏幕必须以横向方向显示,但只有kitkat和旧设备存在的问题是:如果我以横向方向启动应用程序,它根本不会显示。仅供参考,我之前尝试过添加screenOrientation属性,但没有成功。这一点都没有帮助。有人用其他方法解决了这个问题吗?
public class SplashActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
startActivity(new Intent(SplashActivity.this, ActivationActivity.class));
finish();
}
}
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);