某些设备上没有显示自定义视图中的ImageView壁纸

时间:2015-12-24 19:01:17

标签: android imageview android-custom-view wallpaper

我目前有自定义视图的以下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

有人知道这里有什么问题吗?

2 个答案:

答案 0 :(得分:0)

我遇到了类似的问题。尝试将图像mouse_hole放在每个forder中,用于不同的屏幕尺寸:

抽拉-HDPI

抽拉-LDPI

抽拉-MDPI

抽拉-xhdpi

抽拉-xxhdpi

抽拉-xxxhdpi

答案 1 :(得分:0)

可能是布局没有正确更新。我建议使用HierarchyViewer检查Asus Transformer Infinity上缺失视图的大小和位置。以下是您可能需要采取的步骤,以使层次结构查看器与华硕一起使用:

  1. 确保您在华硕上进行调试
  2. ViewServer Jar添加到您的项目中。
  3. 暂时添加库调用以使您的应用可用于层次结构查看器,示例代码可以是seen here
  4. 打开层次结构查看器。在Android工作室中,这是工具菜单&gt; Android子菜单&gt; Android设备监视器
  5. 确保您处于层次结构视图透视
  6. 选择您正在运行的应用程序(可能需要一些布局才能显示)
  7. 使用树节点窗格查找缺少的视图
  8. 通过单击选择视图,使用“视图属性”选项卡验证宽度和高度的测量大小(在度量属性部分下找到)是否大于0
  9. 通过查看布局属性部分(mLeft,mTop,mRight,mBottom)验证视图是否放置在父视图边界中,这里是查看布局属性的人link(尽管他正在追踪性能问题。)。