这里先讲一下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按钮,就会跳转到下面的图形显示界面,