演示环境:Kodi 19.3 Windows 版, Kodi 19.3 Android 版

前言

Kodi 默认皮肤的电影海报墙是不会显示电影名称的,如果不用国语版封面就有一定认知成本,也不方便家里人找电影。所以想给皮肤加上显示电影名称的逻辑。
在这里插入图片描述
一般 Kodi 海报墙想显示标题有 2种方法
1. 修改皮肤样式
2. 更换其他皮肤插件

本文介绍第一种方式,修改皮肤样式。

不同平台

Windows 平台修改方式

Kodi Windows 版本的默认皮肤海报墙样式文件地址如下:
…\Kodi\addons\skin.estuary\xml\View_54_InfoWall.xml

直接在文件内添加代码块,或者通过我附上的完整代码覆盖本地文件。

*修改前请记得备份原始文件

Android 平台修改方式

Kodi Android 版本有2种修改思路

  1. 修改安装后的所在目录,需要 root
  2. 修改 apk 安装包内的文件,需要重新签名

第一种缺点是需要 root,第二种缺点是没法覆盖安装,需要卸载后再安装(因为签名变了)
这里演示第二种,修改 apk 安装包,注意导出资料库,以免重新刮削。

apk 默认皮肤海报墙文件地址如下:
/assets/addons/skin.estuary/xml/View_54_InfoWall.xml

修改方式:

  1. 把安装包后缀 .apk 修改为 .zip ,然后将修改后的 View_54_InfoWall.xml 文件覆盖这个目录
  2. 再将.zip 改回 apk
  3. 重新签名(使用 MT管理器 或者 JDK内置的 jarsigner 工具)

*修改前请记得备份原始文件

不重新签名,只能在模拟器这种没什么安全策略的机器上运行。一般电视盒子、手机都会提示 “签名被修改,有风险。”

这里演示第一种, 使用 MT 管理器 签名。好处是无需 JDK 开发环境、无需自己准备签名文件。缺点就是需要一台 root 安卓机(用模拟器即可)

重新签名:

  1. 下载 MT管理器 https://www.coolapk.com/apk/bin.mt.plus
  2. 使用模拟器安装 MT管理器
  3. 把未签名的 apk 文件放到模拟器中(一般有共享目录)
  4. 在 MT 管理器中点击 未签名的 apk文件
  5. 选择 功能 -> APK 签名

这里就不提供已签名的 apk 文件了,还是大家自行签名吧,下载别人打的包是有安全隐患的。

修改样式

这里提供 2 个我修改的样式版本,有需要的可以跟着步骤修改,或者直接复制我提供的完整代码覆盖本地文件。

有兴趣的也可以自行修改成你喜欢的样式效果。

样式 1

搜索了一下关键字,定位到 <include name="InfoWallMovieLayout"> 这段代码块应该就是电影海报墙的相关内容。

line 278 ~ 379 的control 标签,应该就是显示海报图片相关逻辑。

这里借用一下 电影集 的样式,把这段代码复制到 308 行 ~ 309 行之间

<!-- 2 行大文本 -->
<control type="textbox">
	<left>40</left>
	<top>244</top>
	<width>242</width>
	<height>120</height>
	<font>font27</font>
	<align>center</align>
	<aligny>center</aligny>
	<label>$INFO[ListItem.Label]</label>
	<autoscroll time="2000" delay="3000" repeat="5000">$PARAM[focused]</autoscroll>
	<visible>!ListItem.IsParentFolder</visible>
</control>

效果如下:
在这里插入图片描述
完整代码:
https://www.yuque.com/raw?filekey=yuque%2F0%2F2021%2Fxml%2F12903950%2F1640579679759-aba442dc-1138-414e-9fad-ab19b707af7c.xml

样式 2

但是遇到浅色的背景,文本就看不清楚了。于是我又找了一下有没有其他地方的样式也可以抄一抄。

于是我又找来了剧集的样式,把这段代码复制到 308 行 ~ 309 行之间

<!-- 底部小文本,带阴影 -->
<control type="group">
	<visible>String.IsEqual(ListItem.DBtype,movie)</visible>
	<top>320</top>
	<control type="image">
		<left>35</left>
		<top>0</top>
		<width>250</width>
		<height>50</height>
		<texture colordiffuse="CCFFFFFF">overlays/overlayfade.png</texture>
		<visible>!String.IsEmpty(ListItem.Art(poster))</visible>
	</control>
	<control type="label">
		<left>50</left>
		<top>20</top>
		<width>224</width>
		<label>$INFO[ListItem.Label]</label>
		<font>font20_title</font>
		<shadowcolor>text_shadow</shadowcolor>
		<align>right</align>
	</control>
</control>

效果如下:
在这里插入图片描述

完整代码:
https://www.yuque.com/raw?filekey=yuque%2F0%2F2021%2Fxml%2F12903950%2F1640579684661-26473ba1-48ea-495d-a23e-13ec69a672c8.xml

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐