1.调试程序时,出现了以下的错误
The connection toadb is down, and a severe error has occured.
开始我以为程序问题,可换了一个完好的程序还是这样。于是我确定非程序原因。
过去没有出现过这种情况,昨日还能照常使用,我分析了一下原因:一是我安装并打开了BlueStacks---一个在电脑windows系统下使用app的软件;二是我将手机连接到了电脑上,而使用的虚拟机AVD调试程序;三我从网上看到有说其它手机助手软件开启也会导致这种错误。于是我尝试了以下措施:
一:将BlueStacks软件关闭,并重启eclipse,但仍然报错,失败。
二:将手机断开与电脑的连接,重启eclipse,还是报错,失败。
三:打开任务管理器,将我认为与BlueStacks和手机助手有关的进程关闭(但未发现adb.exe进程),重启,报错,失败。
四:由于我并分不清这些进程,可能任务管理器的进程未关干净,于是我干脆重启了一下电脑。再次启动eclipse,调试程序,成功。
PS:虽然成功运行,但并未真正发现问题所在,以后仍需注意!
2.自定义VIEW(实例:球随指动)
自定义组件代码DrawView.Java
packagecom.hqsA.customview;
importandroid.content.Context;
importandroid.graphics.Canvas;
importandroid.graphics.Color;
importandroid.graphics.Paint;
importandroid.util.AttributeSet;
importandroid.view.MotionEvent;
import android.view.View;
public class DrawView extends View
{
public float currentx = 40;
public float currenty = 50;
//定义并创建画笔
Paint p = new Paint();
public DrawView(Context context)
{
super(context);
}
public DrawView(Context context , AttributeSet set)
{
super(context,set);
}
@Override
public void onDraw(Canvas canvas)
{
super.onDraw(canvas);
//设置画笔颜色
p.setColor(Color.YELLOW);
//绘制一个小圆
canvas.drawCircle(currentx,currenty,15,p);
}
//为该组件的触碰事件重写事件处理方法
@Override
public boolean onTouchEvent(MotionEvent event)
{
//修改currentx,currenty两个的属性
currentx = event.getX();
currenty = event.getY();
//通知当前组件重绘自己
invalidate();
//返回true表明该方法已经处理该事件
return true;
}
}
方法一:(在java代码中创建DrawView)
Activity类代码CustomView.java
package com.hqsA.customview;
importandroid.os.Bundle;
importandroid.app.Activity;
importandroid.widget.LinearLayout;
public classCustomViewActivity extends Activity {
@Override
protected void onCreate(BundlesavedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_custom_view);
//获取布局文件中的LinearLayout容器
LinearLayout root = (LinearLayout)findViewById(R.id.root);
//创建DrawView组件
final DrawView draw = newDrawView(this);
//设置自定义组件的最大宽度、高度
draw.setMinimumWidth(300);
draw.setMinimumHeight(500);
root.addView(draw);
}
}
Xml布局文件代码
<?xml version="1.0"encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/root">
</LinearLayout>
方法二:(在xml中创建DrawView)
Activity类代码CustomView.java
importandroid.os.Bundle;
importandroid.app.Activity;
importandroid.widget.LinearLayout;
public classCustomViewActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_custom_view);
}
}
Xml布局文件代码
<?xml version="1.0"encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/root">
<com.hqsA.customview.DrawView
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>