我认为这本书的代码不正确。在我家试过,效果很好。发现我的日食实际上被打破了。不得不删除并重新安装eclipse。
这是我在这里的第一篇文章,所以如果我不遵守某些规则,请告诉我。我试图搜索并发现一些具有相同错误的帖子,但它们处理的是字符串。我正在关注面向绝对初学者的 Android 应用程序(第 2 版),在第 179 页上,您将 button1.xml 带入了您的 res/drawable。当我进入 layout/activity_main.xml 并输入
<ImageButton
android:id="@+id/button_one"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/button1"
android:contentDescription="@string/app_name"/>
它错误地指出 android:src “错误:错误:找不到与给定名称匹配的资源(在 'src' 处,值为 '@drawable/button1')。”
现在有一些事情让我感到困惑,我正在使用 eclipse 并且我有 4 个可绘制文件夹(drawable-hdpi、drawable-ldpi、drawable-mdpi 和 drawable-xhdpi),我在每个文件夹上都去了 New>File 4 个可绘制文件夹并导入了具有各自分辨率的 button1_focused.png、button1_pressed.png 和 button1_normal.png。我还将 button1.xml 放在每个文件夹中。
button1.xml如下
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@drawable/button1_pressed" />
<item android:state_focused="true"
android:drawable="@drawable/button1_focused" />
<item android:drawable="@drawable/button1_normal" />
</selector>
我尝试了 android:background 而不是 android:src 并且也出现了错误。我看到它的错误表明 src (或背景)没有文件。只是不知道该放什么。
Java代码包com.example.ui_designs;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
ImageButton imageButton = new ImageButton(context);
imageButton.setImageResource(R.drawable.button1);
}