Android小体会

[size=large]学习Android开发已经几天了,虽然与之前的学习内容有所不同,但我感觉这个很有趣,很多东西还是与之前的一样,就是改了名字,改了一些方法,至少,编程思想还是不变的。
最重要的是Activity
Activity类就类似于之前用过的JFrame类,一个Activity就是一个单独的幕,
Activity中有若干个View(控件)对象,它是一个控件对象的“容器”、“载体”。
要创建Activity类就要继承android.app.Activity
每一个Activity都要在AndroidManifest.xml文件中注册,通过<activity>标签实现注册。
Activity的生命周期:
onCreate():当创建一个窗体时,就进入该方法,这个相当于程序的入口
onRestart():如果该Activity已经stop,当你想要再次打开时使用该方法
onStart():当界面出现时,就调用该方法
onPause():让当前Activity暂停
onStop():当另一个Activity创建时,覆盖当前窗体,就用到此方法
onDestory():整个Activity结束时,该方法被调用


登陆界面
1.创建自己的Activity类继承Activity
2.添加组件(按钮、文本框)
3.获取组建
4.按钮监听
5.跳转到第二个Activity

[b]注:
1.每添加一个组件,就要给它一个id
2.每一个Activity都要在AndroidManifest.xml中注册
3.注意.xml中的嵌套[/b]
代码示例:[/size]

FirstActivity:
public class firstActivity extends Activity {
//定义属性
EditText edit_name,edit_pswd;

/** Called when the activity is first created.
* activity的入口,相当于main函数
* */ @Override


public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
System.out.println("我的第一个手机程序");
getView();
}



//用匿名内部类创建监听器对象
OnClickListener listener=new OnClickListener()
{
/**
* 按钮被点击的方法
*/
public void onClick(View v)
{
//验证操作
int id=v.getId();
switch(id)
{
case R.id.btn_login:
System.out.println("edit_name="+edit_name.getText());

//获取文本输入框中的内容
if("yezi".equals(edit_name.getText().toString()));
{
//创建intent对象,实现界面的跳转,intent相当于信使RNA
Intent intent=new Intent(firstActivity.this,secondActivity.class);
startActivity(intent);
}
// else{
// Toast.makeText(firstActivity.this,"您输入的用户名有误", 3).show();
// }
break;
case R.id.btn_reset:
edit_name.setText("");
edit_pswd.setText("");
break;
}
}
};

/**
* 获取组建的方法
*/
public void getView()
{
//通过id找到组件对象
Button btn_login=(Button)findViewById(R.id.btn_login);
Button btn_reset=(Button)findViewById(R.id.btn_reset);
edit_name=(EditText)findViewById(R.id.edit_name);
edit_pswd=(EditText)findViewById(R.id.edit_pswd);

//点击弹出提示信息

btn_login.setOnClickListener(listener);
btn_reset.setOnClickListener(listener);
}




}

SecondActivity:
/**
* 第二个activity
* @author syf
*
*/
public class secondActivity extends Activity{
protected void onCreat(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.second);
}
}


设置组件信息:
<!-- 总体垂直布局 -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="用户登录"
android:textSize="30px"
android:gravity="center_horizontal"
/>
<!-- 嵌套布局 水平居中-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="账户"
/>
<EditText
android:layout_width="100px"
android:layout_height="wrap_content"
android:id="@+id/edit_name"
/>
</LinearLayout>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="密碼"
/>
<EditText
android:layout_width="100px"
android:layout_height="wrap_content"
android:id="@+id/edit_pswd"
/>
</LinearLayout>
<!-- 按钮对象 -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
>
<Button
android:layout_width="100px"
android:layout_height="wrap_content"
android:text="登陆"
android:id="@+id/btn_login"
/>
<Button
android:layout_width="100px"
android:layout_height="wrap_content"
android:text="重置"
android:id="@+id/btn_reset"
/>
</LinearLayout>
</LinearLayout>
/>



[b][size=x-large]画图[/size][/b]
[size=large]
1.创建自己的Activity类,继承Activity
2.创建画板类,继承ImageView
3.监听
4.画线[/size]

[b]注:
1.Bitmap:位图类,特别注意该类的对象要用其他方法获得,不能new,因为该类无构造方法
2.Canvas:画布,创建画布是要传入一个Bitmap的对象;类似于Graphics,注意它的方法
3.Paint:画笔类,画图必须要用画笔,可设置画笔的颜色、宽度等
4.onDraw()方法:类似于paint()方法,注意要在该方法中调用画位图的方法
5.监听用触摸事件onTouchEvent[/b]
代码示例:

MyView类:
/**
* 创建自己的画图类,继承自ImageView
* @author syf
*
*/
public class MyView extends ImageView{
//全局对象
Bitmap map;
Canvas c;
Paint p;

//坐标
float x1,y1,x2,y2;

//构造方法
public MyView(Context context,AttributeSet as)
{
//调用父类中的构造方法
super(context,as);

//创建Bitmap,Canvas,Paint的对象

//Bitmap的对象必须用其他方法获得
map=Bitmap.createBitmap(300, 400, Config.ARGB_8888);

//传入map
c=new Canvas(map);

p=new Paint();

//设置颜色
p.setColor(Color.WHITE);

//设置宽度
p.setStrokeWidth(5);

}

/**
* 触摸事件
*/
public boolean onTouchEvent(MotionEvent e)
{
//获取坐标
int action=e.getAction();

switch(action)
{
case MotionEvent.ACTION_DOWN:
x1=e.getX();
y1=e.getY();
System.out.println("x1=="+x1+"y=="+y1);

break;
case MotionEvent.ACTION_UP:
x2=e.getX();
y2=e.getY();

invalidate();
break;

}
return true;
}

/**
* 定义onDraw()方法
*
*/

public void onDraw(Canvas canvas)
{
//调用父类中的方法
super.onDraw(canvas);

//画直线
canvas.drawLine(x1, y1, x2, y2, p);

//画位图
canvas.drawBitmap(map, 0,0,null);
}
}


自己的Activity类:
public class FirstActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}


在Main.xml中设置MyView的信息
<cn.syf.draw89.MyView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/image"
android:background="#ff00ff"
/>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值