我们大家都知道androidLCD背景颜色和边框颜色的是可控制,实现在mountionEvent中对onClick和onLongClick的区分,利用线程返回不同的值;实现边框颜色和背景颜色的改变,那么我们来看看下面的代码,是怎么实现LCD的背景颜色和边框颜色。
java代码:
复制代码
系列之Android LCD效果(二)的帖子链接 http://www.eoeandroid.com/thread-96340-1-1.html
java代码:
- import java.util.Date;
- import android.app.Activity;
- import android.content.Context;
- import android.graphics.Canvas;
- import android.graphics.Color;
- import android.graphics.Paint;
-
- import android.graphics.Paint.Style;
- import android.os.Bundle;
- import android.os.Handler;
-
- import android.view.KeyEvent;
- import android.view.MotionEvent;
- import android.view.SurfaceHolder;
- import android.view.SurfaceView;
- import android.view.View;
- import android.view.Window;
- import android.view.WindowManager;
-
- public class ScreenChange extends Activity {
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- // MyView.this.setOnClickListener(mClickListener);
-
- requestWindowFeature(Window.FEATURE_NO_TITLE);
- //设置成全屏
- getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
- WindowManager.LayoutParams.FLAG_FULLSCREEN);
-
- setContentView(new MyView(this));
-
- //dm.heightPixels=100;
- //dm.widthPixels=200;
-
- //this.setOnLongClickListener(new OnLongClickListener(){
-
- //getWindowManager().addView(arg0, arg1)
- }
-
- public class MyView extends SurfaceView implements
- SurfaceHolder.Callback,android.view.View.OnKeyListener,android.view.View.OnTouchListener,
- android.view.View.OnClickListener,android.view.View.OnLongClickListener {
- boolean mLong;
- boolean handled;
- private static final int MAX_TOUCHPOINTS = 10;
- // private static final String START_TEXT = "请触摸屏幕进行测试";
- private Paint textPaint = new Paint();
- private Paint touchPaints[] = new Paint[MAX_TOUCHPOINTS];
- private int colors[] = new int[MAX_TOUCHPOINTS];
-
- private int width, height;
- private float scale = 1.0f;
-
- private float timesecond = (float)5;
-
- private int screencolor = 1;
- private int backcolor = 1;
-
- long timedown;
- private long timeperiod;
-
- protected OnClickListener mOnClickListener = new OnClickListener() {
- public void onClick(View v) {
- // do something when the button is clicked
- if(backcolor==10){backcolor=1;}
- backcolor++;
- }
- };
-
-
- public void setOnClickListener(OnClickListener l) {
- if (!isClickable()) {
- setClickable(true);
- }
- mOnClickListener = l;
- }
-
- public OnLongClickListener mOnLongClickListener =new OnLongClickListener() {
- @Override
- public boolean onLongClick(View v) {
- //if (onLongPress != null) {
- // onLongPress.onLongPress(v);
- //}
- if(screencolor==10){screencolor=1;}
- changebackcolor(screencolor);
- screencolor++;
- return true;
- }
-
-
- };
-
- public void setOnLongClickListener(OnLongClickListener l) {
- if (!isLongClickable()) {
- setLongClickable(true);
- }
- mOnLongClickListener = l;
-
- }
-
- SurfaceHolder holder;
- public MyView(Context context) {
- super(context);
- SurfaceHolder holder = getHolder();
- holder.addCallback(this);
- setFocusable(true); // 确保View能获得输入焦点
- setFocusableInTouchMode(true); // 确保能接收到触屏事件
- setOnClickListener(mOnClickListener);
- setOnLongClickListener(mOnLongClickListener);
- init();
-
- }
-
- private void init() {
- // 初始化10个不同颜色的画笔
- textPaint.setColor(Color.WHITE);
- textPaint.setAlpha(0x40);
- colors[0] = 1;
- colors[1] = 2;
- colors[2] = 3;
- colors[3] = 4;
- colors[4] = 5;
- colors[5] = 6;
- colors[6] = 7;
- colors[7] = 8;
- colors[8] = 9;
- colors[9] = 10;
- for (int i = 0; i < MAX_TOUCHPOINTS; i++) {
- touchPaints[i] = new Paint();
- touchPaints[i].setColor(colors[i]);
- }
- }
-
-
- /*
- * 处理触屏事件
- */
-
- @Override
- public boolean onTouchEvent(MotionEvent event) {
- // 获得屏幕触点数量
- int pointerCount = event.getPointerCount();
- if (pointerCount > MAX_TOUCHPOINTS) {
- pointerCount = MAX_TOUCHPOINTS;
- }
- // 锁定Canvas,开始进行相应的界面处理
- Canvas c = getHolder().lockCanvas();
- if (c != null) {
- // c.drawColor(Color.BLACK);
- if (event.getAction() == MotionEvent.ACTION_UP) {
- handler1.removeCallbacks(runnable);
- if (!handled) {
- performClick();
系列之Android LCD效果(二)的帖子链接 http://www.eoeandroid.com/thread-96340-1-1.html