如何新建和使用 Android 控件

#移动开发 #Android

一、重点

如何在 layout(xml)中使用自定义的控件

二、举例

1. 功能:实现一个新的浏览器控件,使点击浏览器中任何位置都能打印 Log 信息

2. 步骤:

  1. 建立 project
  1. 在 eclipse 中点击菜单 File->New->Project ……

  2. 选择 Android Project 按 Next

  3. 填写 project 的各项内容如下
    Project name: test_xy // 目录名, 它位于你设定的 workspace 之下
    Package name: com.android.test // 打包名称
    Activity name:.TestXy // 类名 (生成文件 TestXy.java)
    Application name: test_xy // 可执行程序名
    然后点 Finish 按钮

  1. 继承一个已有控件,加入新的属性和方法
  1. eclipse 左侧:test_xy->src->com.android.test 点右键 New->class

  2. 建立新控件:Name: MyWebView,其它使用默认选项
    MyWebView.java 内容如下: ** package ** ** com.android.test;

import android.view.MotionEvent;
import android.webkit.WebView;
import android.content.Context;
import android.util.AttributeSet;
import android.util.Log;

public class MyWebView extends WebView {
public MyWebView(Context context) {
this(context, null);
}
public MyWebView(Context context, AttributeSet attrs){
this(context, attrs, 0);
}
public MyWebView(Context context, AttributeSet attrs,int defStyle) {
super(context, attrs, defStyle);
} ** // 注意实现带三个参数的构造函数 **
public boolean onTouchEvent(MotionEvent ev) { ** // 加入新功能 **
int action = ev.getAction();
Log. d ("XY_TEST", "now recv key: " + action);
return super.onTouchEvent(ev);
}
} **

  1. 修改 xml 文件
  1. eclipse 左侧:test_xy- >res->layout->main.xml 修改其中内容如下
    ** "1.0" encoding= "utf-8"? >
    _[http://schemas.android.com/apk/res/android

](http://schemas.android.com/apk/res/android)
_ android:orientation= "vertical" android:layout_width= "fill_parent"
android:layout_height= "fill_parent" >
"fill_parent"
android:layout_height= "wrap_content"
android:text= "@string/hello" / >
android:id= "@+id/myview" android:layout_height= "fill_parent"
android:layout_width= "fill_parent" / >

注意使用全名, 即 com.android.test.MyWebView, 否则找不到新控件 **

** 4) 运行 **

**

  1. 在 eclipse 中点击菜单 Run- >Run Configurations ……

  2. 双击左边的 Android Application,产生了一个 New Configuration,点开它填写内容如下: Name: yan_config // 随便起一个
    Project: test_xy // 刚才起的 project, 即目录名

  3. 点击 Apply,然后点 Run,多等一会儿就出来了

  4. 此时点击右上的 DDMS,可看到 Log 信息,在触摸 WebView 控件时,可看到刚才加入的 Log 信息

**