android设置图片在底部,Android Theme设置背景图片,底部被导航栏遮盖

现在启动页消除点击时的黑屏,自然比较简单的方法就是在 Theme 中设置背景了,这个应该都知道。

今天设置背景时,在有导航栏的手机上跑,发现底部的图片有一部分被导航栏遮盖了,就找了下原因。

被遮盖时的主题设置和图片设置。

@drawable/splash_bg

true

true

android:opacity="opaque">

android:gravity="bottom|center_horizontal"

android:src="@mipmap/splash_bg"

android:tileMode="disabled" />

Activity 是继承的 AppCompatActivity。

经过在网上的一番查找,将继承的主题换了,Activity 也换为继承 Activity ,这次背景片在底部加载出来时,就在导航栏的上方,并且隐藏导航栏后,图片也随着向下移动。

@drawable/splash_bg

true

至于为什么继承于 AppCompatActivity 的启动页 Activity 背景图片会被遮盖,我也没找到原因。。

有知道的请告诉下,谢谢。

启动页后,从全屏到非全屏页面的平滑过渡,只要在跳转前,加入下面的代码就好,让activity提前退出全屏

getWindow().addFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);

在Cocos2d-x这样的游戏引擎中,为了防止手机底部的虚拟导航栏(通常出现在Android系统中)遮挡游戏界面元素,你可以采取以下几种策略: 1. **设置视口**(Viewport)调整:在游戏中,可以设置视口的高度略低于屏幕高度,让内容填充整个屏幕并避开底部空间。使用`ccDirector::setOpenGLView`和`ccDirector::setContentScaleFactor`来控制视口的位置和缩放。 ```cpp auto director = Director::getInstance(); director->setContentScaleFactor(0.9f); // 设置合适的缩放比例 ``` 2. **自适应布局**(Auto Layout):如果你的游戏支持iOS,可以利用Cocos的`ui`组件创建布局管理,例如设置UI元素的AnchorPoint和SizeType属性,使其自动适应屏幕变化。 3. **沉浸模式**(Full Screen Mode):许多现代移动操作系统允许开发者请求全屏模式,隐藏状态栏。通过在Android的Activity中设置`android:theme`属性或在iOS中使用`UIWindow`的`setStatusBarStyle`方法,可以实现这一目的。 4. **手动处理事件**:如果以上方法都不合适,可以监听设备的方向改变事件,并相应地动态调整游戏区域的位置。 ```cpp EventListenerKeyboard::create(cocos2d::KEYBOARD_ESCAPE, CC_CALLBACK_1(GameScene::onBackKeyDown, this)); Director::getInstance()->getEventDispatcher()->addEventListenerWithFixedPriority(this->eventListener, 0); void GameScene::onBackKeyDown(EventKeyboard* event) { if (event->isDown()) { // 当用户点击底部导航栏时,这里可以根据需求调整UI布局或关闭游戏 } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值