自定义视图中的 ImageView 墙纸未在某些设备上显示
ImageView wallpaper inside custom view is not showing up on some devices
我的自定义视图目前有以下 XML 代码:
<com.pink.jazz.RootView
android:id="@+id/rootView"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingStart="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingEnd="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MouseActivity" >
<ImageView
android:id="@+id/mouse_hole"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/mouse_hole"
android:visibility="gone"
/>
</com.pink.jazz.RootView>
在某些设备(例如 Samsung Galaxy Tab 4)上,墙纸图像 mouse_hole
显示正常,而在其他设备(例如 Asus Transformer Infinity TF700T)上根本不显示。 mouse_hole
的可见性在我开始游戏时以编程方式更改为可见。我的自定义视图扩展 RelativeLayout
.
有谁知道这里出了什么问题吗?
我遇到了类似的问题。尝试将您的图片 mouse_hole
放入不同屏幕尺寸的每个 forder 中:
drawable-hdpi
drawable-ldpi
drawable-mdpi
drawable-xhdpi
drawable-xxhdpi
drawable-xxxhdpi
可能是布局未正确更新。我建议使用 HierarchyViewer 检查 Asus Transformer Infinity 上缺失视图的大小和位置。以下是让层次结构查看器与华硕一起工作可能需要执行的步骤:
- 确保您在 Asus 上进行调试
- 将 ViewServer Jar 添加到您的项目。
- 临时添加库调用以使您的应用程序可用于层次结构查看器,示例代码可以是seen here
- 打开层次结构查看器。在 android 工作室中,工具菜单 > Android 子菜单 > Android 设备监视器
- 确保您处于层次视图视角
- Select 您的应用 运行(显示布局可能需要一些时间)
- 使用树节点窗格查找丢失的视图
- Select 单击视图,使用“视图属性”选项卡验证宽度和高度的测量尺寸(在测量 属性 部分下找到)是否大于 0
- 通过查看布局 属性 部分(mLeft、mTop、mRight、mBottom)验证视图是否位于父视图边界中,这里是 link 给正在查看的人布局属性(尽管他正在追踪性能问题)。
我的自定义视图目前有以下 XML 代码:
<com.pink.jazz.RootView
android:id="@+id/rootView"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingStart="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingEnd="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MouseActivity" >
<ImageView
android:id="@+id/mouse_hole"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/mouse_hole"
android:visibility="gone"
/>
</com.pink.jazz.RootView>
在某些设备(例如 Samsung Galaxy Tab 4)上,墙纸图像 mouse_hole
显示正常,而在其他设备(例如 Asus Transformer Infinity TF700T)上根本不显示。 mouse_hole
的可见性在我开始游戏时以编程方式更改为可见。我的自定义视图扩展 RelativeLayout
.
有谁知道这里出了什么问题吗?
我遇到了类似的问题。尝试将您的图片 mouse_hole
放入不同屏幕尺寸的每个 forder 中:
drawable-hdpi
drawable-ldpi
drawable-mdpi
drawable-xhdpi
drawable-xxhdpi
drawable-xxxhdpi
可能是布局未正确更新。我建议使用 HierarchyViewer 检查 Asus Transformer Infinity 上缺失视图的大小和位置。以下是让层次结构查看器与华硕一起工作可能需要执行的步骤:
- 确保您在 Asus 上进行调试
- 将 ViewServer Jar 添加到您的项目。
- 临时添加库调用以使您的应用程序可用于层次结构查看器,示例代码可以是seen here
- 打开层次结构查看器。在 android 工作室中,工具菜单 > Android 子菜单 > Android 设备监视器
- 确保您处于层次视图视角
- Select 您的应用 运行(显示布局可能需要一些时间)
- 使用树节点窗格查找丢失的视图
- Select 单击视图,使用“视图属性”选项卡验证宽度和高度的测量尺寸(在测量 属性 部分下找到)是否大于 0
- 通过查看布局 属性 部分(mLeft、mTop、mRight、mBottom)验证视图是否位于父视图边界中,这里是 link 给正在查看的人布局属性(尽管他正在追踪性能问题)。