Android ImageButton ButtonState图像未显示

时间:2015-04-19 22:09:37

标签: android png android-imagebutton slidingpanelayout

我的工作来自华莱士杰克逊" Android应用程序绝对初学者",第3版。

目前在第9章末尾(第350页)。

我在资源目录中有PNG文件,imagebutton状态文件和主活动布局已更新。我得到了一些意想不到的行为并不令人惊讶,因为大多数书籍代码样本都没有开箱即用,但我对这一点感到有些困惑。图像按钮不会显示在滑动窗格布局的左窗格中。我可以看到三个小的白色矩形图像应该是,但它们应该是正方形(好吧,圆圈,但从技术上讲,图像仍然是具有透明度的正方形)。其中也应该有很少的星系图片。

Android工作室不会给我任何错误,状态文件甚至会有缩略图显示相应的按钮状态资源。

我使用的是带有JRE 1.7.0_71的AndroidStudio 1.1.0。 我在使用Android 5.1的Google Nexus 7上进行调试

按钮状态文件(请注意,stackoverflow正在终止终止选择器标记)

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_hovered="true" android:drawable="@drawable/imagebutton1hover" />
<item android:state_pressed="true" android:drawable="@drawable/imagebutton1press" />
<item android:state_focused="true" android:drawable="@drawable/imagebutton1focus" />
<item android:drawable="@drawable/imagebutton1normal" />

布局文件

<android.support.v4.widget.SlidingPaneLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" tools:context=".MainActivity"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/spLayout"
android:background="@drawable/ninepatchframe">
<LinearLayout
    android:layout_width="110dp"
    android:layout_height="match_parent"
    android:layout_weight="0.25"
    android:orientation="vertical">
    <ImageButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/galaxyOne"
        android:src="@drawable/ibstates1"
        android:contentDescription="@string/galaxyone"/>
    <ImageButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/galaxyTwo"
        android:src="@drawable/ibstates2"
        android:contentDescription="@string/galaxytwo"/>
    <ImageButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/galaxyThree"
        android:src="@drawable/ibstates3"
        android:contentDescription="@string/galaxythree"/>
</LinearLayout>
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    android:background="@drawable/galaxyinfoscreen">
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:background="#00000000"
        android:layout_margin="12dp">
        <TextView
            android:text="@string/hello_world"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="#FFFFFF"
            android:layout_marginLeft="48dp" android:textStyle="bold"/>
        <TextView
            android:text="@string/galaxy_name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="#FFFFFF" />
        <TextView
            android:text="@string/galaxy_solar"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="#FFFFFF" />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/galaxy_habit"
            android:textColor="#FFFFFF" />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/galaxy_colony"
            android:textColor="#FFFFFF" />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/galaxy_pop"
            android:textColor="#FFFFFF" />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/galaxy_fleet"
            android:textColor="#FFFFFF" />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/galaxy_ships"
            android:textColor="#FFFFFF" />
    </LinearLayout>
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:background="#00000000"
        android:layout_marginTop="33dp">
        <TextView
            android:text="@string/name_data"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="#FFFFFF"
            android:id="@+id/name"/>
        <TextView
            android:text="@string/solar_data"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="#FFFFFF"
            android:id="@+id/solar"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/habit_data"
            android:textColor="#FFFFFF"
            android:id="@+id/habit"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/colony_data"
            android:textColor="#FFFFFF"
            android:id="@+id/colony"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/pop_data"
            android:textColor="#FFFFFF"
            android:id="@+id/pop"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/fleet_data"
            android:textColor="#FFFFFF"
            android:id="@+id/fleet"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/ships_data"
            android:textColor="#FFFFFF"
            android:id="@+id/ships"/>
    </LinearLayout>
</LinearLayout>

另一件奇怪的事情......不要认为它有关系,但谁知道呢。书中的屏幕截图显示了整个滑动窗格面板周围的九个配线架,但在我的应用中,右边的面板完全覆盖了九个贴片(根本无法在那一侧看到它)。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

答案已由其他人发布。对他来说不幸的是,链接帖子的OP从未承认PSIXO的正确答案。

image button with selector in android studio error rendering

对于那些不想阅读整个帖子的人,物理文件名必须以&#34; .xml&#34;结尾。关于Android编程的书指导读者创建一个名为&#34; ibstates&#34;的文件,但名称必须是&#34; ibstates.xml&#34;或者Android Studio将在作为资源引用它时中断并退出。