这里先讲一下android的资源文件的命名问题。
比如,我命名成spaceCapture.png,这样的文件是无法通过编译的。Android studio会给出以下报错:
Error:Execution failed for task':app:mergeDebugResources'.
>D:\AndroidStudioProjects\MyApplication2\app\src\main\res\drawable-v24\spaceCapture.png:Error: 'C' is not a valid file-based resource name character: File-basedresource names must contain only lowercase a-z, 0-9, or underscore
必须把文件名改成space_capture.png,然后再去make project,这样才能成功。
先来看一下android View这个类的继承关系,如下所示,
图形开发中最简单的一步,当然就是显示一张图片。Activity的添加步骤和《在 Android Studio 添加一个activity并实现跳转》是类似的,部分源码可参考该文。下面直接给出所有与本文有关的最终源码,
其中ImageViewActivity.java就是添加activity时由android studio直接生成时的默认代码,没有修改
package com.spacesoftwares.myapplication2;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
public class ImageViewActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_image_view);
}
}
相应的Layout/activity_image_view.xml
MainActivity.java中的代码如下,
package com.spacesoftwares.myapplication2;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import java.util.Set;
public class MainActivity extends AppCompatActivity {
private Button mBtnTextView; // define a text view button
private Button mBtnImageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mBtnTextView = findViewById(R.id.btnTextView1); // get the button, it is in activity_main.xml
mBtnImageView = findViewById(R.id.btnImageView1);
setListeners();
};
private void setListeners(){
OnClick onClick = new OnClick();
mBtnTextView.setOnClickListener(onClick);
mBtnImageView.setOnClickListener(onClick);
}
private class OnClick implements View.OnClickListener {
Intent intent = null;
public void onClick(View v){
switch(v.getId()){
case R.id.btnTextView1:
intent = new Intent(MainActivity.this, TestTextViewActivity.class);
break;
case R.id.btnImageView1:
intent = new Intent(MainActivity.this, ImageViewActivity.class);
break;
default: break;
}
startActivity(intent);
}
}
}
其layout/activity_main.xml就是两个简单的按钮,
最终的显示效果如下,
点击IMAGE-VIEW按钮,就会跳转到下面的图形显示界面,
