AndroidTV/FireTV应用频道Banner不显示,FireStick显示1:1图标求助
问题描述
开发Android TV/Fire Stick项目时,已按文档要求将ic_banner.png放入对应drawable文件夹,但Fire Stick设备上的频道图标始终显示1:1比例的应用图标,而非预期的16:9 Banner。尝试将文件移至mipmap文件夹无效,系统始终 fallback 到居中显示在16:9矩形里的ic_launcher图标,显示效果差。怀疑是否与Android Studio侧载应用有关,暂不想推送应用。
提供的配置文件
Manifest文件
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="private"> <uses-permission android:name="android.permission.INTERNET" /> <uses-feature android:name="android.hardware.touchscreen" android:required="false" /> <uses-feature android:name="android.software.leanback" android:required="true" /> <application android:allowBackup="true" android:screenOrientation="landscape" android:banner="@drawable/ic_banner" android:hardwareAccelerated="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:networkSecurityConfig="@xml/network_security_config" android:supportsRtl="true" android:theme="@style/Theme"> <activity android:name=".ui.host.hostdetail.HostDetailActivity" android:exported="true" /> <activity android:name=".ui.DeviceLinkActivity" android:exported="true" /> <activity android:name=".ui.SplashActivity" android:exported="true" android:noHistory="true"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> <category android:name="android.intent.category.LEANBACK_LAUNCHER" /> </intent-filter> </activity> <activity android:name=".ui.MainActivity" android:exported="true" /> <activity android:name=".ui.VideoPlayerActivity" android:exported="true" /> </application> </manifest>
ic_banner.xml文件
<?xml version="1.0" encoding="utf-8"?> <adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"> <background android:drawable="@color/ic_banner_background"/> <foreground android:drawable="@drawable/ic_banner_foreground" android:gravity="center" /> </adaptive-icon>
排查与解决步骤
替换自适应图标为标准PNG Banner
Fire Stick的频道Banner不支持自适应图标(adaptive-icon)格式,当前的ic_banner.xml会导致系统无法识别,转而使用应用图标。- 直接使用16:9比例的PNG图片,标准尺寸为:
- xhdpi: 320×180px
- xxhdpi: 480×270px
- xxxhdpi: 640×360px
- 将PNG文件命名为
ic_banner.png放入对应drawable文件夹,删除原ic_banner.xml。
- 直接使用16:9比例的PNG图片,标准尺寸为:
清理项目缓存并重新编译
Android Studio可能缓存了旧资源,执行以下操作:Build > Clean ProjectBuild > Rebuild Project- 重新侧载应用到Fire Stick。
清除Fire Stick设备缓存
设备可能保留了旧的应用图标缓存:- 卸载应用后,进入
设置 > 应用 > 管理已安装应用,找到应用并清除缓存和数据 - 重启设备后重新安装应用。
- 卸载应用后,进入
为Leanback启动Activity单独配置Banner(可选)
在启动Activity标签下添加Banner配置,确保TV launcher优先识别:<activity android:name=".ui.SplashActivity" android:exported="true" android:noHistory="true" android:banner="@drawable/ic_banner"> <!-- 添加此行 --> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> <category android:name="android.intent.category.LEANBACK_LAUNCHER" /> </intent-filter> </activity>
内容的提问来源于stack exchange,提问作者Joel Hager
相关产品推荐
相关产品推荐

