MainActivity
package org.wp.activity;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
public class MainActivity extends Activity implements OnClickListener {
private Button leftBtn, rightBtn;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main);
leftBtn = (Button) this.findViewById(R.id.leftBtn);
rightBtn = (Button) this.findViewById(R.id.rightBtn);
leftBtn.setOnClickListener(this);
rightBtn.setOnClickListener(this);
}
@Override
public void onClick(View v) {
int id = v.getId();
if (id == R.id.leftBtn) {
MySurfaceView.notice = "点击了LeftButton";
} else if (id == R.id.rightBtn) {
MySurfaceView.notice = "点击了RightButton";
}
}
}
MySurfaceView
package org.wp.activity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
public class MySurfaceView extends SurfaceView implements
SurfaceHolder.Callback, Runnable {
public static String notice = "自定义SurfaceView";
private SurfaceHolder sfh;
private Canvas canvas;
private Paint paint;
private int x = 30, y = 80, move_x = 2;
public MySurfaceView(Context context, AttributeSet attrs) {
super(context, attrs);
this.setKeepScreenOn(true);
this.setFocusable(true);
sfh = this.getHolder();
sfh.addCallback(this);
paint = new Paint();
paint.setAntiAlias(true);
paint.setTextSize(20);
}
@Override
public void run() {
while (true) {
draw();
logic();
try {
Thread.sleep(100);
} catch (Exception e) {
e.printStackTrace();
}
}
}
private void draw() {
canvas = sfh.lockCanvas();
canvas.drawColor(Color.WHITE);
canvas.drawText(notice, x, y, paint);
sfh.unlockCanvasAndPost(canvas);
}
private void logic() {
x += move_x;
if (x >= 200 || x <= 30) {
move_x = -move_x;
}
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
new Thread(this).start();
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
}
}
main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<org.wp.activity.MySurfaceView android:layout_width="fill_parent"
android:layout_height="fill_parent" />
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:textSize="32sp"
android:textColor="#00FF00"
android:text="This is Android" />
<LinearLayout android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:orientation="horizontal"
android:gravity="center">
<Button android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="LeftButton"
android:id="@+id/leftBtn" />
<Button android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="RightButton"
android:id="@+id/rightBtn" />
</LinearLayout>
</RelativeLayout>
分享到:
相关推荐
使用SurfaceView来进行地图绘制,实现的功能有: 1. 双击放大 2. 多点触摸放大 3. 地图拖拽 4. 添加地图标记
Android自定义相机界面,SurfaceView的使用,并添加阴影效果,点击拍照返回图片展示
android用户界面之SurfaceView教程实例汇总 android用户界面之Notification教程实例汇总 android用户界面之TextView教程实例汇总 android用户界面之ScrollView教程实例汇总 android用户界面之PopupWindow教程实例...
60个Android开发精典案例 Android软件源码: 2-1(Activity生命周期) ...3-10-1(列表之ArrayAdapter适配) 3-10-2(列表之SimpleAdapter适配) ...7-7(添加自定义多边形) 7-9(在物理世界中添加圆形) 8-1(迷宫小球) 8-2(堆房子)
自定义一个Dialog中播放视频,主要用到SurfaceView进行播放SDcard中的视频文件。可以对播放进行简单的操作,如:播放、暂停、进度条显示、推拽。另外需要的功能完全可以根据自己的需求添加。
第1章 Android应用与开发环境 1 1.1 Android的发展和历史 2 1.1.1 Android的发展和简介 2 1.1.2 Android平台架构及特性 3 1.2 搭建Android开发环境 5 1.2.1 下载和安装Android SDK 5 1.2.2 安装...
7.26 在自定义的surfaceview上绘制动画 504 第8章 当android与internet接轨 509 8.1 http get/post传递参数 510 8.2 在程序里浏览网页 513 8.3 嵌入html标记的程序 516 8.4 设计前往打开网页功能 ...
7.26 在自定义的SurfaceView上绘制动画 第8章 当Android与Internet接轨 8.1 HTTP GET/POST传递参数 8.2 在程序里浏览网页 8.3 嵌入HTML标记的程序 8.4 设计前往打开网页功能 8.5 将网络图像网址放入Gallery中显示 ...
7.26 在自定义的SurfaceView上绘制动画 第8章 当Android与Internet接轨 8.1 HTTP GET/POST传递参数 8.2 在程序里浏览网页 8.3 嵌入HTML标记的程序 8.4 设计前往打开网页功能 8.5 将网络图像网址放入Gallery中显示 ...
7.26 在自定义的SurfaceView上绘制动画 第8章 当Android与Internet接轨 8.1 HTTP GET/POST传递参数 8.2 在程序里浏览网页 8.3 嵌入HTML标记的程序 8.4 设计前往打开网页功能 8.5 将网络图像网址放入Gallery中显示 ...
7.26 在自定义的SurfaceView上绘制动画 第8章 当Android与Internet接轨 8.1 HTTP GET/POST传递参数 8.2 在程序里浏览网页 8.3 嵌入HTML标记的程序 8.4 设计前往打开网页功能 8.5 将网络图像网址放入Gallery中显示 ...
4.9 动态添加/删除的Spinner菜单——ArrayList与Widget的依赖性 4.10 心爱小宝贝相片集——Gallery与衍生BaseAdapter容器 4.11 快速的搜索手机文件引擎——JavaI/O的应用 4.12 按钮也能随点击变换——ImageButton...
4.9 动态添加/删除的Spinner菜单——ArrayList与Widget的依赖性 4.10 心爱小宝贝相片集——Gallery与衍生BaseAdapter容器 4.11 快速的搜索手机文件引擎——JavaI/O的应用 4.12 按钮也能随点击变换——ImageButton...
4.9 动态添加/删除的Spinner菜单——ArrayList与Widget的依赖性 4.10 心爱小宝贝相片集——Gallery与衍生BaseAdapter容器 4.11 快速的搜索手机文件引擎——JavaI/O的应用 4.12 按钮也能随点击变换——ImageButton...
第1章 Android应用与开发环境 1 1.1 Android的发展和历史 2 1.1.1 Android的发展和简介 2 1.1.2 Android平台架构及特性 3 1.2 搭建Android开发环境 5 1.2.1 下载和安装Android SDK 5 1.2.2 安装Eclipse和ADT插件 7 ...
4.9 动态添加/删除的Spinner菜单——ArrayList与Widget的依赖性 4.10 心爱小宝贝相片集——Gallery与衍生BaseAdapter容器 4.11 快速的搜索手机文件引擎——JavaI/O的应用 4.12 按钮也能随点击变换——ImageButton...