【Java开源代码栏目提醒】:文章导读:在新的一年中,各位网友都进入紧张的学习或是工作阶段。网学会员整理了Java开源代码-TouchView.java的相关内容供大家参考,祝大家在新的一年里工作和学习顺利!
package org.chapter9;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.View;
public class TouchView extends View {
private Paint mPaint = new Paint();
public static int width, height, radiusSmall, radiusBig, radiusButton;
public static int [] buttonCoors = new int [8];
private boolean debug = true;
private int [] buttonColors = {Color.RED, Color.BLUE, Color.GREEN, Color.YELLOW};
public TouchView(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}
public TouchView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
// TODO Auto-generated constructor stub
}
public TouchView(Context c) {
super(c);
}
@Override
protected void onDraw(Canvas canvas) {
width = getWidth();
height = getHeight();
radiusSmall = width/6;
radiusBig = width/2;
radiusButton = radiusSmall/2;
// M button (x, y)
buttonCoors[0] = width/2; buttonCoors[1] = height/2 - radiusBig + 40;
// B button (x, y)
buttonCoors[2] = width/2 - radiusBig + 40; buttonCoors[3] = height/2;
// F button (x, y)
buttonCoors[4] = width/2 + radiusBig - 40; buttonCoors[5] = height/2;
// P button (x, y)
buttonCoors[6] = width/2; buttonCoors[7] = height/2 + radiusBig - 40;
mPaint.setStyle(Paint.Style.STROKE);
mPaint.setColor(Color.WHITE);
mPaint.setStrokeWidth(2);
mPaint.setStrokeJoin(Paint.Join.ROUND);
mPaint.setStrokeCap(Paint.Cap.ROUND);
// outer circle
canvas.drawCircle(width/2, height/2, width/2-10, mPaint);
// inner circle
mPaint.setStyle(Paint.Style.FILL);
mPaint.setColor(Color.LTGRAY);
canvas.drawCircle(width/2, height/2, width/6-10, mPaint);
// four button labels and circles if debugged
mPaint.setTextSize(22);
canvas.drawText("M", width/2-10, height/2-radiusBig+50, mPaint);
canvas.drawText("<<", width/2-radiusBig+30, height/2+10, mPaint);
canvas.drawText(">>", width/2+radiusBig-50, height/2+10, mPaint);
canvas.drawText(">|", width/2-10, height/2+radiusBig-30, mPaint);
if(debug) {
mPaint.setStyle(Paint.Style.STROKE);
for(int i=0; i<buttonCoors.length; i+=2) {
mPaint.setColor(buttonColors[i/2]);
canvas.drawCircle(buttonCoors[i], buttonCoors[i+1], radiusButton, mPaint);
}
}
}
}