俗话说,任何一种语言入门都是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]);
}
});
}
}