//基础类
public class Action {
public int color;
Action() {
color=Color.BLACK;
}
Action(int color) {
this.color = color;
}
public void draw(Canvas canvas) {
}
public void move(float mx,float my){
}
}
// 点
class MyPoint extends Action {
public float x;
public float y;
MyPoint(float px, float py, int color) {
super(color);
this.x = px;
this.y = py;
}
public void draw(Canvas canvas) {
Paint paint = new Paint();
paint.setColor(color);
canvas.drawPoint(x, y, paint);
}
}
public class Palette extends Activity {
PaletteView paletteView=null;
@Override
public boolean onTouchEvent(MotionEvent event) {
Log.i("", "...onTouchEvent");
return paletteView.onTouchEvent(event);
}
@Override
public void run() {
while (mLoop) {
try {
Thread.sleep(50);
} catch (InterruptedException e) {
e.printStackTrace();
}
synchronized (mSurfaceHolder) {
Draw();
Log.i("View", "..run..");
}
}
}
// 画主画板
private void drawMainPallent(Canvas canvas) {
Log.i("View", "...drawMainPallent...");
// 设置画笔没有锯齿,空心
mPaint.setAntiAlias(true);
mPaint.setStyle(Paint.Style.STROKE);
// 画板绘图区背景图片
canvas.drawBitmap(bgBitmap, bgBitmapX, bgBitmapY, null);
newbit=Bitmap.createBitmap(bgBitmapWidth, bgBitmapHeight,
Config.ARGB_4444);
Canvas canvasTemp = new Canvas(newbit);
canvasTemp.drawColor(Color.TRANSPARENT);
for(int i=0;i<=currentPaintIndex;i++){
actionList.get(i).draw(canvasTemp);
}
// 画当前画笔痕迹
if (curAction != null) {
curAction.draw(canvasTemp);
}
// 在主画板上绘制临时画布上的图像
canvas.drawBitmap(newbit, bgBitmapX, bgBitmapY, null);
// 画板绘图区边框
mPaint.setColor(Color.BLACK);
mPaint.setStyle(Paint.Style.STROKE);
mPaint.setStrokeWidth(3);
canvas.drawRect(bgBitmapX - 2, bgBitmapY - 2, bgBitmapX + bgBitmapWidth
+ 2, bgBitmapY + bgBitmapHeight + 2, mPaint);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
Log.i("View", "...onTouchEvent..22.");
int antion = event.getAction();
if (antion == MotionEvent.ACTION_CANCEL) {
return false;
}
float touchX = event.getX();
float touchY = event.getY();
// 点击时
if (antion == MotionEvent.ACTION_DOWN) {
// 检测点击点是否在主绘图区
if (testTouchMainPallent(touchX, touchY)) {
setCurAction(getRealX(touchX), getRealY(touchY));
clearSpareAction();
}
// 检测点击点是否在画笔选择区
testTouchToolsPanel(touchX, touchY);
// 检测点击点是否在画笔大小选择区
testTouchSizePanel(touchX, touchY);
// 检测点击点是否在颜色选择区
testTouchColorPanel(touchX, touchY);
// 检测点击点是否在按钮上
testTouchButton(touchX, touchY);
}
// 拖动时
if (antion == MotionEvent.ACTION_MOVE) {
if (curAction != null) {
curAction.move(getRealX(touchX), getRealY(touchY));
}
}
// 抬起时
if (antion == MotionEvent.ACTION_UP) {
if (curAction != null) {
curAction.move(getRealX(touchX), getRealY(touchY));
actionList.add(curAction);
currentPaintIndex++;
curAction = null;
}
isBackPressed = false;
isForwardPressed = false;
}
return super.onTouchEvent(event);
}
分享到:
相关推荐
【Android Iphone QQ 在线】是一个针对QQ应用的特殊功能,允许用户在Android设备上模拟出iPhoneQQ在线的状态。这个功能通常被那些希望在不同设备上同时保持在线状态或者想要改变在线显示设备类型的人所使用。米蜂版...
标题“android iPhone_Weibo”表明我们关注的是在Android设备上使用的微博应用,可能是微博的Android版本,或者是一个特别针对Android平台的与iPhone版微博相关的应用程序。描述中的“android上的iPhone_Weibo”...
css android iphone mtk css android iphone mtk css android iphone mtk css android iphone mtk css android iphone mtk
用安卓 Android iPhone iPad远程接入访问ERP CRM OA
一个超赞的分享电脑无线网卡的工具,大家可能都知道,使用电脑新建一个无线,是在手机的wifi中无法查到的,我们通常都会使用复杂的工具来完成这个问题如:connectify等,但是工具十分复杂并且跟电脑性能有一定关系,...
1.实现类似于ios的dialog.iphone的Dialog 2.可以传递参数 IosDialog iosDialog = new IosDialog(MainActivity.this); ArrayList<SheetItem> listSheetItems;
E6998: Mobile Computing with iPhone and Android ,美国大学课件
框架主页https://github.com/aellerton/japng_android,Android apng支持框架,自己打包成aar
android iPhone风格大全,包括的例子包括有: 1、android listview 圆角的实现方案; 2、android-section-list-831908237d33; 3、android-uitableview-master; 4、Android房iPhone风格设置页面; 5、android快速...
各种实用数据恢复软件,android iPhone,windows,超强集合
Android、iPhone、Windows Phone手机网页及网站设计 最佳实践与设计精粹 pdf扫描版
Android开发 仿iPhone风格对话框示例源码 这个对话框完全继承、仿照AlertDialog,只是实现了自定义效果。 另外,没有实现setIcon,因为iphone中的对话框多数都没有图标。 附件包含例子、jar包、jar包源码。
在Android开发中,实现一个类似iPhone的时间选择器可以极大地提升用户体验。这个功能允许用户通过直观的界面来选择特定的时间,通常包括小时和分钟。在iPhone上,这种选择器以一个可滚动的圆环形式呈现,而在Android...
在Android平台上,开发一款应用程序来模仿iPhone的主题,特别是其主菜单界面,是一个有趣且具有挑战性的实践项目。这个“android 仿iphone主题之主菜单”的示例代码提供了一个实现这一目标的基础框架,并且代码中...
"Android仿iphone-气泡短信-DEMO.zip" 这个标题表明这是一个针对Android平台的开发项目,其目标是模仿iPhone的气泡短信效果。气泡短信是iOS系统中一种常见的对话界面设计,以气泡的形式展示聊天内容,使用户在视觉上...
该工具为windows系统下Chrome浏览器伪装android浏览器和iphone浏览器的dll文件,覆盖相应的dll到chrome相应的dll目录下即可,可以伪装成手机浏览器访问网页,可应用web开发者调试网页。
它里面详细全面地介绍了用XE8开发android和android应用的实例,等等,需要大家详细地读和准备地理解。 Mobile Tutorials Mobile Application Development (iOS and Android) for XE8 移动开发指南:用Delphi XE8...