ActionBarSherlock Item Icon 奇怪的宽度与Android 4.3
Posted
技术标签:
【中文标题】ActionBarSherlock Item Icon 奇怪的宽度与Android 4.3【英文标题】:ActionBarSherlock Item Icon strange width with Android 4.3 【发布时间】:2013-11-24 21:04:23 【问题描述】:我正在使用 ActionBarSherlock 开发应用程序
菜单中的一项是矩形图像。查看它的 xml:
<item
android:id="@+id/kapturar_action"
android:showAsAction="always"
android:icon="@drawable/camera_action_icon"
android:title="@string/kapturar" />
<item
到目前为止一切顺利。 问题是 SDK 4.3 似乎只接受方形图像(这是我的假设,我不确定)并且图标以一种奇怪的方式显示,保留了看起来是“最大宽度”属性的东西。
查看打印屏幕
Android 2.2 - 模拟器:
Android 4.1.2 - 三星 Galaxy S3 Mini:
Android 4.3 - Nexus 4:
我仔细检查了drawables,我认为一切都是正确的。我已经定义了 MDPI、HDPI 和 XHDPI 图像。
任何人都可以肯定在菜单项中使用矩形可绘制对象是不可能的吗?有没有办法解决 Android 4.3 中保留向后兼容的问题?
【问题讨论】:
再次检查drawable,在再次安装之前,清理并重建你的项目 又这样做了,什么也没做。 :( 解决方法怎么样:制作一个您想要的布局,然后以编程方式将其添加到ActionBar
?
因为它是一个按钮,而不仅仅是一个视图。
你尝试过 ActionBar Compat 吗?
【参考方案1】:
Action Bar Sherlock 现在是 deprecated,因为 Google 发布了自己的 Action Bar compatibility library。
我强烈建议切换到那个官方库,我猜/希望你的问题不会出现在那里。
【讨论】:
是的,Jake Wharton 表示将随着 ABS 的未来发展而停止。 @NikolaDespotoski 你能指出杰克在哪里说的吗?谢谢!【参考方案2】:您可以简单地使用 ActionBar 的兼容版本。这不是很好的答案,但它会帮助你。
让它只是注释行
registerImplementation(ActionBarSherlockNative.class);
在 ActionBarSherlock 类中。
此外,在此之后,您可以在 ActionBarSherlock 中编辑源、资源,它们在 Android 2.3 和 Android 4.0+ 设备上的外观相同。
【讨论】:
【参考方案3】:尝试将您的可绘制对象放入另一个文件夹。我的意思是,如果它在 drawable-xhdpi 文件夹中,请将其放入 drawable-hdpi (或其他)。 有时它解决了从资源中调整图像大小的问题
【讨论】:
以上是关于ActionBarSherlock Item Icon 奇怪的宽度与Android 4.3的主要内容,如果未能解决你的问题,请参考以下文章
ActionBarSherlock:java.lang.NoClassDefFoundError:com.actionbarsherlock.R$styleable
ActionBarSherlock & ShareActionProvider 导致 InflateException