android - 主题的可绘制问题

标签 android android-theme android-drawable

在构建我的应用程序时,我一开始只使用 Theme.Light.NoTitleBar.Fullscreen 主题。我像这样为整个应用程序构建了所有布局,并按照我想要的方式进行设置。布局中使用的一些可绘制对象的大小已专门设置,而另一些则设置为 wrap_content。

然后我决定切换到 Holo light 主题。当我这样做时,设置为 wrap_content 的布局中使用的所有可绘制对象最终都会变大。几乎就像他们从一个更大的桶里拉出来一样。事实上,有些看起来像是被拉长了。

Holo Based Theme

Default PreHolo Theme

我知道旧主题的背景是黑色的,但这不是问题(这实际上是包含在另一个布局中的布局文件)。显然,两者在尺寸上存在很大差异。

最佳答案

这只是我根据我在这个帖子中读到的内容做出的猜测。

这可能是因为您将这些图像用作 Button View 的背景属性。这是不安全的,因为根据默认边距值(在主题中定义),Button 可以根据需要拉伸(stretch)背景图像。如果是这种情况,那么您需要改用 ImageButton View 并使用 setImage*() 方法来分配图像。在那里你可以使用 Carlos Robeles 提到的 scaleType 属性。

关于android - 主题的可绘制问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20864074/

相关文章:

android - 操作栏选项卡的全息主题向后兼容性

java - Android:如何知道运行时小部件应用了哪种样式

android - 从 android 中的字符串数组引用可绘制对象

javascript - AppBrowser 中 Cordova 的回调事件

android - 找不到 opencv.hpp?安卓NDK

android - 使用手机壁纸作为应用程序背景 - Theme.Wallpaper like behavior

android - 在不切换 Activity 的情况下显示不同的图像形式

android - 将可绘制对象设置为 android :windowBackground

android - 如果仅在Kotlin中首次执行主要 Activity 时才出现对话框,该怎么办?

java - 通过 JSON 提要代码下载推文无效