如果 minSdkVersion>10,为什么 WidgetTab 中的图像不显示?

2024-02-02

我一直在尝试创建一个简单的TabActivity有 3 个选项卡。所有作品except如果我把android:minSdkVersion="11"在清单文件中,不显示图标。如果我设置 `minSdkVersion="10",一切都很好。

我左顾右盼,却始终无法确定问题出在哪里。
我已将相同的图像放在看似合适的资源目录中:

res/drawable-hdpi-v5
res/drawable-ldpi-v5
res/drawable-mdpi-v5
res/drawable-xhdpi-v5

代码很简单:

import android.app.TabActivity;
import android.content.res.Resources;
import android.os.Bundle;
import android.util.Log;
import android.view.ViewGroup.LayoutParams;
import android.widget.LinearLayout;
import android.widget.TabHost;
import android.widget.TabWidget;

public class Review extends TabActivity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        TabHost tabs = getTabHost();
        getLayoutInflater().inflate(R.layout.main, 
                                    tabs.getTabContentView(), true);
        Resources resources=getResources();
        Log.d("testing", String.format("icon: %d.%d",
                    resources.getDrawable(R.drawable.review).getIntrinsicWidth(), 
            resources.getDrawable(R.drawable.review).getIntrinsicHeight()));
        TabHost.TabSpec details = tabs.newTabSpec("review"). setContent(R.id.review). 
                setIndicator(getString(R.string.review), 
                        resources.getDrawable(R.drawable.review));        
        TabHost.TabSpec gallery=tabs.newTabSpec("gallery").setContent(R.id.photos)
                .setIndicator(getString(R.string.gallery), 
                        resources.getDrawable(R.drawable.photos));
        TabHost.TabSpec reservation=tabs.newTabSpec("reservation").
             setContent(R.id.reservation)
                .setIndicator(getString(R.string.reservation), 
                        resources.getDrawable(R.drawable.reservation));
        tabs.addTab(details);
        tabs.addTab(gallery);
        tabs.addTab(reservation);    
    }
}

在深入研究这个问题时,我在 android 2.0 与 3.0 内部看到的唯一区别是 Android 使用RelativeLayout代替LinearLayout在2.0的实现中。

只是为了确保找到图标图像,Log.d以上显示:

图标:32.32 正如它应该的那样。

为什么从android 2.0到3.0的转变会这样做???我希望其他人也遇到过这种情况,而且这是显而易见的。非常感谢您的帮助!

- 更新:

我今天发现,当我更仔细地观察为 android 3.0+ 构建此代码时实际发生的情况时,我了解到ImageView是什么时候发生的SetIndeicator(string, drawable)被称为每个TabSpec,实际上从未设置过并且实际上是NULL (ImageView.mDrawable==null) and INVISBLE.

如果我强制设置那些可绘制对象,and call ImageView.setVisiblity(View.VISIBLE)然后他们出现了。然而,在 android 2.0 下,它们与上面的图像和下面的文本堆叠在一起,如下所示:

<image>
<text>

在 android 3.0 下,它们并排出现(当如上所述强制时),如下所示:

<image><text>

因此,事情似乎发生了很大的变化,我需要更仔细地研究 android 3.0 的变化。

请继续关注更多...

-- 最终更新:

最终,我放弃了这条途径,并决定这种做事风格已经改变,也许现在已经被贬值了,还有其他更好的方法可以做到这一点,而且图标风格有点旧。


奇怪,这解决了问题

    //bmOptions.inSampleSize = 1;
    //or better
    bmOptions.inScaled = false;

更多信息请参见:https://stackoverflow.com/a/12088287/1320686 https://stackoverflow.com/a/12088287/1320686

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如果 minSdkVersion>10,为什么 WidgetTab 中的图像不显示? 的相关文章

  • 对 AAssetManager_fromJava 的未定义引用

    我正在尝试使用 AAssetManager 从 Android apk 访问资源 然而 我不断得到 未定义对 AAssetManager fromJava 的引用 即使我已包含 asset manager h 和 asset manager
  • Android 使用键盘上的“完成”按钮来单击按钮

    好的 在我的应用程序中 我有一个供用户输入数字的字段 我已将该字段设置为仅接受数字 当用户单击该字段时 它会弹出键盘 键盘 ICS 上 上有一个完成按钮 我希望键盘上的完成按钮能够触发我的应用程序中的提交按钮 我的代码如下 package
  • Android:删除整个数据库

    我想删除由我的应用程序创建的完整数据库 你知道有什么adb命令或者android语句可以做到这一点吗 您可以运行命令 adb s emulator 5554 shell or whatever port you use cd data da
  • Android 和 Java Uuid

    我想为我的应用程序生成一个uuid 我尝试了很多东西 例如wifi mac地址 获取android id 序列号 从设备创建伪uuidandroid os Build特性 我还知道java本身有Uuid创建者类java util UUID
  • 用于编辑文本的电子邮件键盘

    以下代码似乎不起作用 我想要电子邮件键盘 and com显示编辑文本 emailEditText setInputType InputType TYPE TEXT VARIATION EMAIL ADDRESS 将其添加到您的布局中 and
  • Jetpack Compose 预览未显示

    我似乎在撰写预览时遇到问题 当我使用 preview 注释撰写方法时 布局面板不会出现 我假设我缺少依赖项 但我已从此处复制并粘贴了代码https developer android com jetpack compose setup ht
  • 无法在 Android Studio 中将项目迁移到 Gradle

    我有一个项目已经在 Android Studio 中运行 在 Android Studio 中打开项目后 我收到消息 将项目迁移到 Gradle 该项目不使用 Gradle 构建系统 我们建议您迁移到使用 Gradle 构建系统 有关迁移到
  • Android AsyncTask 启动另一个 AsyncTask

    我目前正在 AsyncTask 的 onPostExecute 方法中执行类似的操作 其中NewTask is not当前正在执行的任务 private class OlderTask extends AsyncTask
  • 如何在 Android 上将 ISO 8601 字符串解析为 Java 日期 [重复]

    这个问题在这里已经有答案了 我正在 Android 上创建一个与服务器通信的应用程序 该服务器给我返回了一个ISO 8601 http en wikipedia org wiki ISO 8601日期字符串 如下所示 2014 11 21
  • Android架构组件导航:工具栏后退按钮缺失,后退不起作用

    我正在尝试喷气背包导航 但当我移动到新片段时无法显示导航后退按钮 导航活动 kt class NavActivity AppCompatActivity override fun onCreate savedInstanceState Bu
  • Android ListView:当内容发生变化时,如何保持ListView位于顶部?

    我有一个视图 其中包含绑定到游标适配器的 ListView 当光标内容更改时 我想将 ListView 保留在顶部 然后在我的自定义光标适配器中添加 Override protected void onContentChanged myLi
  • Nativescript 中本机传感器的可访问性

    我决定选择在 Nativescript 跨平台 IOS Android 中实现应用程序 或者相应地使用 java swift 制作 真正的 本机应用程序 放弃明显的 1 代码库与 2 代码库讨论 我不确定 Nativescript 的局限性
  • 如果使用 PackageManager 禁用应用程序图标,是否会导致该应用程序的自动更新出现问题?

    我有一个应用程序 其中使用以下代码隐藏应用程序图标 PackageManager p getApplicationContext getPackageManager p setComponentEnabledSetting getCompo
  • 使用 ADB 更改 Android 壁纸?

    我想知道是否可以使用我的笔记本电脑从 ADB 更改 Android 壁纸 我不知道是否存在任何命令 或者我是否需要将图片复制到文件夹或编辑文本文件 如果可以的话 我需要通过 ADB 解决这个问题 谢谢大家 您只需要启动正确的壁纸设置意图 由
  • 我可以通过编程方式选择 Android 布局文件夹吗?

    我正在构建一个 Android 应用程序 它使用不同的布局文件夹 即 Large xlarge 等 根据屏幕尺寸调整大小 唯一的问题是 我想为用户提供一种在小屏幕布局和大屏幕布局之间切换的方法 以防他们拥有无法识别 xlarge 标签的前蜂
  • Android Widget 实现

    嗨 如果这个问题很愚蠢 我提前道歉 我对 Android 编程相当陌生 而且学得很快 我刚刚创建了一个任务提醒应用程序 并且想将该应用程序转换 实现为一个可以在主屏幕上查看的小部件 有什么方法吗 这可能吗 Thanks 如果没有更多关于您的
  • 如何使用 Android 的身份验证标签进行 GCM 加密

    我想制作一个通过 GCM 模式与 Android 身份验证标签加密数据的函数 这是我的源代码 public static byte GCMEncrypt String hexKey String hexIV byte aad throws
  • 如果没有 @Provides 注释的方法,则无法提供 Dagger AndroidInjector

    我已经通过 MVP 模式完成了我的 Android 项目 MainActivity 因此 在我的 MainPresenter 中 我想注入一个动态字符串 然后该字符串将填充 TextView 例如 class MyMainPresenter
  • Android 堆栈跟踪显示生产 Firebase crashlytics 中的测试代码

    该应用程序的 Play 商店版本的 Firebase crashlytics 中报告了该异常 当用户进入启动活动时会发生这种情况 任何帮助 将不胜感激 谢谢 没有其他可用的堆栈跟踪有助于跟踪代码发生的位置 Fatal Exception j
  • 如何从双 SIM 卡设备获取两个电话号码?

    我知道如何获取用户的电话号码 但假设用户的手机是双 SIM 卡 有什么办法可以得到两个电话号码吗 目前我只能获取有效的电话号码 如果电话号码确实存储在SIM卡中 那么您可以使用subscriptionmanager API https de

随机推荐

  • Objective-C 中的 AES 字符串加密

    我的 Objective C 应用程序需要做string加密 特别是nsstring questions tagged nsstring 我发现 AES 是可供消费者使用的最安全的加密方法 我也了解如何将字符串转换为NSData然后回来 只
  • 如何为类本身(而不是类的实例)选择自定义字符串表示形式?

    考虑这个类 class foo object pass 默认的字符串表示形式如下所示 gt gt gt str foo
  • 如何使用 UI-Router 仅更新命名视图

    我正在创建一个网络应用程序来帮助学生学习科学 历史和数学 当您第一次登陆该网站时 我有一个主页 登陆页面 当您单击 开始 时 我会转到 exam instructions 我的每个步骤都说明了我加载到的模板中的数学和科学ui view ex
  • IBAction、IBOutlet 等中的 IB 是什么意思?

    我对 iPhone 开发非常陌生 我经常遇到IBAction IBOutlet阅读 Objective C 和 Swift 代码时等等 什么是IB代表 界面生成器 在 Xcode 4 之前 接口文件 XIB 和 NIB 是在名为 Inter
  • 尽管没有使用布尔值,但我得到“类型不匹配无法从 int 转换为布尔值”

    我正在 Java如何编程 一书中做练习 我应该制作一个模拟抛硬币的应用程序 我应该创建一个方法 翻转 它随机返回硬币的一面 我决定让该方法返回 1 或 2 并且在主方法中我将这些值 转换 为硬币的一面 问题是我收到一条错误消息 类型不匹配
  • TextView 中的链接

    我需要将链接放在TextView 我有一个包含标签的字符串 a href link Text for link a 和一些其他文字 问题是 如果我运行该项目 我可以看到文本 但不可单击 我尝试过 b 也标记一下看看是否有效 但似乎也不起作用
  • tm.package:findAssocs 与 Cosine

    我是新来的 我的问题是数学问题而不是编程性质 我想就我的方法是否有意义获得第二意见 我试图使用该函数在我的语料库中找到单词之间的关联findAssocs 来自tm包裹 尽管它在通过该包提供的数据 例如 纽约时报 和美国国会 上表现得相当不错
  • PHP:使用 DOMPDF 自动将动态 PDF 保存到远程服务器

    我正在使用 dompdf 库创建基于表格的 PDF 我可以在线查看它 也可以将其下载到选择的用户文件夹中 但我想做的是将其保存到远程服务器 我不需要将其保存到用户电脑 就像一个自动上传脚本 它会创建文件然后将其上传到远程服务器 所以我稍后可
  • 为什么 UnderscoreJS 对许多原生 Javascript 函数有包装函数?

    我注意到UnderScoreJS http underscorejs org isArray有很多围绕原生 Javascript 函数的包装函数 举个例子 isArray isBoolean isNaN 这有什么原因吗 或者这些只是为了确保
  • 将值从BackgroundWorker DoWork 传递到BackgroundWorker Completed

    我如何传递一个值BackgroundWorker DoWork to BackgroundWorker Completed Since BackgroundWorker Completed不被调用BackgroundWorker DoWor
  • 获取 javascript 对象中的最后一项

    如果我有一个像这样的对象 a apple b banana c carrot 如果我事先不知道列表会上升到 c 除了循环遍历对象之外 是否有办法获取对象中的最后一项 例如 carrot 是的 有一种方法可以使用Object keys obj
  • setProgressDrawable 填充整个seekBar

    正如我在标题中所说 当我使用 setProgressDrawable 时 它 会填充整个 SeekBar 如果进度为 34 则进度显示 100 但拇指显示正确的百分比为 34 我不明白可能是什么问题 done setProgressDraw
  • 异步/等待上传任务

    我如何等待 uploadTask 以便在将下载 url 和文档插入到 firestore 之前先上传图像 文件并跟踪其进度 以下代码是我的示例 Vue 项目 它工作正常 但请参阅if portraitFile 必须满足我必须上传图片的条件
  • Amazon S3:SDK 或 REST API [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我必须使用 Amazon S3 以 Java 编程方式上传一些静态内容 当我开始阅读时 我发现这样做的方法是通过他们的 SDK REST API
  • DART 中可能有配置文件吗?

    我有这个 JavaScript 类 use strict global conf var properties PROPERTIES CHANNEL sport VIEW ELEMENTS LOADER CLASS loader SPLAS
  • MySQL 是否应该将时区设置为 UTC?

    跟进问题https serverfault com questions 191331 should servers have their timezone set to gmt utc https serverfault com quest
  • Jersey 客户端 API - 身份验证

    我正在使用 Jersey 客户端 API 向 JAX WS Web 服务提交 SOAP 请求 默认情况下 Jersey 在受到质询时以某种方式使用我的 Windows Nt 凭据进行身份验证 谁能解释一下 Jersey 在代码中的位置 它可
  • Java组合(has-a)关系澄清

    我很难理解构图的概念 我需要创建一个制造商类和一个产品类并使用组合 我是否在产品内部创建 has a 引用 并在创建新产品时仅添加制造商对象 这正是我们的目的 也是有道理的 制造商是产品的一个完全合理的属性 并且在对象中引用制造商似乎是合理
  • 如何使用其自己的 DataTemplate DependencyProperty 实现 WPF 控件?

    我是一名中级 WPF 开发人员 拥有如何实现依赖属性以及简单的自定义控件的工作知识 我还不明白如何将 DataTemplate 依赖属性添加到自定义控件 并使用它来定义数据集合中每个数据的元素树 完整的故事是 我一直致力于创建一个 WPF
  • 如果 minSdkVersion>10,为什么 WidgetTab 中的图像不显示?

    我一直在尝试创建一个简单的TabActivity有 3 个选项卡 所有作品except如果我把android minSdkVersion 11 在清单文件中 不显示图标 如果我设置 minSdkVersion 10 一切都很好 我左顾右盼