`
bogongjie
  • 浏览: 235993 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

android Canvas 画箭头

阅读更多
public void drawAL(int fx, int fy, int sx, int sy) {
		double H = 8;
		double L = 3.5;
		int x3 = 0;
		int y3 = 0;
		int x4 = 0;
		int y4 = 0;
		double awrad = Math.atan(L / H);
		double arraow_len = Math.sqrt(L * L + H * H);
		double[] arrXY_1 = rotateVec(sx - fx, sy - fy, awrad, true, arraow_len);
		double[] arrXY_2 = rotateVec(sx - fx, sy - fy, -awrad, true, arraow_len);
		double x_3 = sx - arrXY_1[0];
		double y_3 = sy - arrXY_1[1];
		double x_4 = sx - arrXY_2[0];
		double y_4 = sy - arrXY_2[1];
		Double X3 = new Double(x_3);
		x3 = X3.intValue();
		Double Y3 = new Double(y_3);
		y3 = Y3.intValue();
		Double X4 = new Double(x_4);
		x4 = X4.intValue();
		Double Y4 = new Double(y_4);
		y4 = Y4.intValue();
		myCanvas.drawLine(fx, fy, sx, sy, paint);
		Path triangle = new Path();
		triangle.moveTo(sx, sy);
		triangle.lineTo(x3, y3);
		triangle.lineTo(x4, y4);
		triangle.close();
		myCanvas.drawPath(triangle, paint);

	}

	public double[] rotateVec(int px, int py, double ang, boolean isChLen, double newLen) {
		double mathstr[] = new double[2];
		double vx = px * Math.cos(ang) - py * Math.sin(ang);
		double vy = px * Math.sin(ang) + py * Math.cos(ang);
		if (isChLen) {
			double d = Math.sqrt(vx * vx + vy * vy);
			vx = vx / d * newLen;
			vy = vy / d * newLen;
			mathstr[0] = vx;
			mathstr[1] = vy;
		}
		return mathstr;
	}

 

 

转载: http://blog.csdn.net/yxz329130952/article/details/8084412

分享到:
评论

相关推荐

    Android 自定义 直线箭头和曲线箭头

    本文将深入探讨如何在Android中创建自定义的直线箭头和曲线箭头,包括如何设置颜色,以及利用赛贝尔曲线和正切余弦函数计算箭头的方向。 首先,让我们了解Android自定义视图的基本步骤。创建一个新的Java类,继承自...

    android画直线、箭头、折线(平移、定义点击事件)源码

    3. **画箭头**: 绘制箭头稍微复杂一些,需要先画出箭头的主体(通常是一条直线),然后添加箭头的头。这可以通过定义两个小的三角形来完成,这两个三角形位于直线的末端,指向所需的方向。 4. **画折线**: 折线...

    Android:自定义View实现随滑动由箭头变对勾的指示按钮

    在Android开发中,自定义View是一项重要的技能,它允许开发者根据设计需求创造出独特且具有交互性的用户界面元素。本篇文章将深入探讨如何实现一个名为"MagicButton"的自定义View,该按钮在用户滑动时能从箭头形态...

    Android自定义带箭头的Progressbar

    "Android自定义带箭头的Progressbar"是一个很好的实例,它展示如何根据需求定制原生的ProgressBar,使其具有更丰富的视觉表现力。这个项目的核心是创建一个自定义的View,通过重写相关方法来绘制带有箭头的进度条,...

    简单用canvas实现一个圆锥漏斗,按照比例分成不同颜色显示。用来做统计。.zip

    在Android开发中,Canvas是用于在屏幕上绘制图形的重要工具,它是Android SDK的一部分,提供了一种在设备屏幕或者Bitmap上绘制2D图形的方式。本项目"简单用canvas实现一个圆锥漏斗,按照比例分成不同颜色显示。用来...

    android箭头

    在自定义View中,通常会重写`onDraw()`方法,在其中利用`Canvas`对象进行绘图,如画线、弧线、矩形等,构建出各种形状,包括箭头。 总的来说,这个项目涉及到Android UI元素的优化,特别是箭头图形的修复和完善,...

    Android编程之canvas绘制各种图形(点,直线,弧,圆,椭圆,文字,矩形,多边形,曲线,圆角矩形)

    本文实例讲述了Android编程之canvas绘制各种图形的方法。分享给大家供大家参考,具体如下: 1、首先说一下canvas类: Class Overview The Canvas class holds the “draw” calls. To draw something, you need 4 ...

    原生Android画板(非签名),自带曲线,带箭头直线,框,文字,以及撤销功能

    这个项目名为"原生Android画板(非签名)",提供了丰富的绘图功能,包括绘制曲线、箭头直线、矩形框以及添加文字,并且具有撤销操作,对于学习和开发此类应用的开发者来说极具参考价值。下面我们将深入探讨这些知识...

    android自定义圆盘方向按钮

    为了绘制方向箭头,我们可以使用`canvas.drawLine()`或者`canvas.drawBitmap()`,根据需要调整箭头的角度和长度。 3. **onMeasure()**:此方法用于确定控件的大小。根据圆盘半径和内边距计算控件的宽度和高度,并...

    安卓进度条loadingprogress相关-Android带箭头有光晕效果的ProgressBar.rar

    这可能涉及到重写`onDraw()`方法,使用`Canvas`对象进行绘图,包括绘制进度条、箭头以及光晕等元素。 2. **矢量图形与动画**: 箭头通常由矢量图形表示,如SVG或使用Android的VectorDrawable。光晕效果可能是通过`...

    Android 自定义气泡布局

    本主题聚焦于“Android自定义气泡布局”,这种布局主要用于实现类似消息提示或者指示箭头的效果,常见于各种应用的导航和提示功能。下面我们将深入探讨如何实现这样一个自定义气泡布局,以及其关键特性。 1. **气泡...

    Android-BubbleLayout弹出提示气泡

    2. 绘制箭头与气泡:使用Canvas对象,开发者可以利用`drawPath()`、`drawRect()`和`drawText()`等方法来绘制气泡的形状和箭头。需要精确计算各个几何图形的位置和大小,以确保箭头指向正确的UI元素。 3. 属性定制:...

    android 画一个自定义的二维坐标

    这个过程涉及到Android的Canvas类、Paint类以及View的onDraw()方法等关键概念。以下将详细介绍如何在Android中实现一个自定义的二维坐标系,并在横纵轴下方添加自定义的文字。 首先,我们要创建一个新的View类,...

    一个简单的Android圆弧刷新动画

    之前刷贴吧的时候看到的贴吧的刷新动画,就是一个圆弧旋转的动画,感觉挺好看的,就抽空实现了一下。 最终的结果是这样的: 从上图中可以看出,动画的效果是三段圆弧进行旋转,...canvas.drawArc(left, top, right, b

    canvas实现图片根据滑块放大缩小效果

    本篇文章将深入探讨如何使用 Canvas 实现一个图片根据滑块动态放大缩小的效果。这个功能可以应用于许多场景,例如图像查看器或编辑器,为用户提供直观的缩放操作。 首先,我们需要创建一个 `canvas` 元素,并设置其...

    Android-DrawingView允许用户使用不同的画笔进行绘制并提供一些功能

    8. **形状工具**:提供预设形状,如矩形、圆形、箭头等,方便用户快速绘制。 在项目`DrawingView-master`中,我们可以期待找到以下文件和目录: - `DrawingView.java`:自定义视图类的源代码,包含了绘图逻辑和...

    Android-Android实现气泡布局

    在Android应用开发中,气泡布局(Bubble Layout)是一种常见的设计模式,通常用于创建提示框、通知或者指示器等元素,以吸引用户的注意力。本文将深入探讨如何在Android中实现气泡布局,包括其基本原理、自定义View...

    带箭头的圆角矩形菜单

    关于“箭头”,在Android中,箭头可以通过画布(Canvas)上的Path或者BitmapShader来绘制,也可以通过使用矢量图形资源(VectorDrawable)实现。矢量图形的优点是可以在不同分辨率的设备上保持清晰,不会因放大而...

    Android特效——很酷的动画下载按钮

    2. **绘制图形**:在`onDraw()`方法中,我们可以使用`Canvas`对象进行图形绘制,包括线条、形状、文字等。在这个案例中,可能使用了`drawPath()`绘制箭头,并通过改变路径坐标来实现动画效果。 3. **处理触摸事件**...

    Android仿支付宝9.5芝麻信用分仪表盘

    总之,这个项目涵盖了Android UI设计、自定义View、Canvas绘图、动画处理等多个方面,是提升Android开发技能的一个好实践。对于希望深入了解Android UI开发的开发者来说,这是一个有价值的参考实例。

Global site tag (gtag.js) - Google Analytics