尝试使用图像按钮时应用程序停止,但只使用按钮工作正常

时间:2015-02-08 08:24:35

标签: android mobile

我是Android开发的新手。我正在开发一个小应用程序。我的主页有一个背景和6个图像按钮。当我尝试在模拟器上加载我的应用程序时,应用程序崩溃了。但是,当我尝试使用按钮并删除背景时,该应用程序似乎工作正常。请指导我如何在我的应用程序中使用图像按钮,或者是否有任何其他方式将图像用作按钮。

提前致谢

2 个答案:

答案 0 :(得分:1)

为什么不使用ImageButton

<ImageButton
    android:id="@+id/imageButton1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/android_button" />

答案 1 :(得分:0)

阅读本文。它将完美地运作ImageButtonDocumentation

显示一个按钮,其中包含可由用户按下或单击的图像(而不是文本)。默认情况下,ImageButton看起来像常规Button,标准按钮背景在不同按钮状态下改变颜色。按钮表面上的图像由XML元素中的android:src属性或setImageResource(int)方法定义。

要删除标准按钮背景图像,请定义自己的背景图像或将背景颜色设置为透明。

要指示不同的按钮状态(聚焦,选择等),您可以为每个状态定义不同的图像。例如,默认为蓝色图像,聚焦时为橙色图像,按下时为黄色图像。一个简单的方法是使用XML drawable&#34;选择器。&#34;例如:

<?xml version="1.0" encoding="utf-8"?>
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
     <item android:state_pressed="true"
           android:drawable="@drawable/button_pressed" /> <!-- pressed -->
     <item android:state_focused="true"
           android:drawable="@drawable/button_focused" /> <!-- focused -->
     <item android:drawable="@drawable/button_normal" /> <!-- default -->
 </selector>

将XML文件保存在项目res/drawable/文件夹中,然后将其作为drawable的{​​{1}}来源(在ImageButton中)。 Android将根据按钮的状态和XML中定义的相应图像自动更改图像。

元素的顺序很重要,因为它们按顺序进行评估。这就是&#34;正常&#34;按钮图片是最后一个,因为它只会在android:src attributeandroid:state_pressed评估为false后才会应用。

然后创建一个按钮。

android:state_focused

将您的可绘制图片替换为<Button android:id="@+id/Button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:bacckground="@drawable/android_button" />