俗话说,任何一种语言入门都是helloworld。当然android并不是一门新的语言,它是基于java的一种开发平台吧。
作为入门,其实不能算入门了,因为之前就写过一些代码,但是并没有系统的总结过。
这次我打算跟着《疯狂android讲义》好好学一遍。
关于环境配置这里略去了,并且在讲义第一章讲了很多工具,看上去很高大上,这里先留坑,以后再慢慢研究。
大体你会发现讲义第一章在说,ADT和eclipse方便我们开发,为我们做了很多事情,然而呢?这对初学者并不是什么好事,因为你压根不懂其中的原理,所以必须教你如何用命令行建android工程,如何ADB调试,什么AAPT打包...其实作为初学者,很难看懂,包括我...所以占坑是正确的,以后学得多了再回过头来看看,或者会豁然开朗。
当然和web开发类似,android也有前后端,因此android里的.xml文件有点类似前端的.html文件,可以写各种UI布局。然而书本告诉我们,.xml文件并不是必须的,它只是将UI界面与业务逻辑很好的分离开来,方便代码管理。实际上呢?.xml文件最终应该也是会变成.class文件?具体我不太清楚,也先占坑,总之,学习如何不用.xml文件写UI界面也是很重要的。这会给你一个不同的体验。
于是让我门来体验一把吧。
//使用一个线性布局LinearLayout //两个TextView和1个Button组件 //setText是设置文字,addView是把组件加到线性布局里 import android.app.Activity; import android.os.Bundle; import android.text.StaticLayout; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.Button; import android.widget.LinearLayout; import android.widget.TextView; public class Myview extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); LinearLayout layout = new LinearLayout(this); super.setContentView(layout); final TextView tx = new TextView(this); tx.setText(R.string.hello_world); layout.addView(tx); TextView tx1 = new TextView(this); tx1.setText("123456"); layout.addView(tx1); Button btn = new Button(this); btn.setText("wocao"); btn.setLayoutParams(new ViewGroup.LayoutParams( //按钮大小刚好包裹文字 ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)); layout.addView(btn); layout.setOrientation(LinearLayout.VERTICAL); //布局中组件排列方式为垂直 btn.setOnClickListener(new OnClickListener() { //点击按钮改变文字 @Override public void onClick(View v) { // TODO Auto-generated method stub tx.setText("你好!!!"); } }); } }
下面是个简单的实例:
请自行找几张图片,放到工程目录下的res/drawable文件下,一般选drawable-mdpi这个文件夹
然后运行一下以下代码,就可以看到图片切换功能,实际上就是给ImageView加了一个点击监听器而已.
代码:
import android.R.layout; import android.app.Activity; import android.os.Bundle; import android.text.StaticLayout; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.Button; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; public class Myview extends Activity { int images[] = { //图片数组 R.drawable.ajax, R.drawable.classic, R.drawable.ee, R.drawable.java, R.drawable.xml }; int cur = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); LinearLayout layout = new LinearLayout(this); super.setContentView(layout); layout.setOrientation(LinearLayout.VERTICAL); final ImageView imageView = new ImageView(this); layout.addView(imageView); imageView.setImageResource(images[0]); //初始化第一张图片 imageView.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { //轮转图片 // TODO Auto-generated method stub if(++cur == images.length) cur = 0; imageView.setImageResource(images[cur]); } }); } }