android百度画线
android百度坐标测试
package com.jsptpd.baidumap;import android.graphics.Point;import com.baidu.mapapi.map.BaiduMap;import tLng;import com.baidu.mapapi.utils.CoordinateConverter;import com.baidu.mapapi.utils.CoordinateConverter.CoordType;import com.baidu.mapapi.utils.DistanceUtil;/*** 经纬度相关工具栏。
主要用于进行与经纬度相关的操作,比如经纬度转换等** @author 马陈杰* @since 2014.8.22* @version 1.0**/public class LatLngUtil {private BaiduMap mBDMap;// 百度地图实例/*** 构造函数,使用百度地图实例进行构造** @param mBDMap* 百度地图实例*/public LatLngUtil(BaiduMap mBDMap) {super();this.mBDMap = mBDMap;}/*** 获取两点之间的直线距离** @param p1LL* 百度经纬度* @param p2LL* 百度经纬度* @return 两者之间的直线距离*/public static double getDistance(LatLng p1LL, LatLng p2LL) {return DistanceUtil.getDistance(p1LL, p2LL);}/*** 根据屏幕坐标获取百度经纬度** @param p* 屏幕坐标,以左上角为原点* @return 屏幕坐标点对应的百度经纬度*/public LatLng pointToLatLng(Point p) {return mBDMap.getProjection().fromScreenLocation(p);}/*** 根据百度经纬度获取屏幕坐标** @param ll* 百度经纬度* @return 屏幕坐标,以左上角为原点*/public Point latLngToPoint(LatLng ll) {return mBDMap.getProjection().toScreenLocation(ll);}/*** 根据屏幕坐标偏移计算偏移后的百度经纬度** @param ll* 原始百度经纬度* @param x* 水平偏移偏移以左上角为原点,远离为正,靠近为负* @param y* 垂直偏移偏移以左上角为原点,远离为正,靠近为负* @return 偏移后的百度经纬度*/public LatLng latLngoffsetByPoint(LatLng ll, int x, int y) {Point p = mBDMap.getProjection().toScreenLocation(ll);p.x += x;p.y += y;return mBDMap.getProjection().fromScreenLocation(p);}/*** 将84(GPS)经纬度转换为百度经纬度** @param ll* GPS经纬度* @return 百度经纬度*/public static LatLng changeGpsToBD(LatLng ll) {return new CoordinateConverter().from(CoordType.GPS).coord(ll).convert();}/*** 将国标,soso,谷歌经纬度转换为百度经纬度** @param ll* 其他类型经纬度* @return 百度经纬度*/public static LatLng changeCommonToBD(LatLng ll) {return new CoordinateConverter().from(MON).coord(ll) .convert();}}。
Android利用canvas画各种图形(点、直线、弧、圆、椭圆、文字、矩形、多边形、曲线、圆角矩形)
Android利用canvas画各种图形(点、直线、弧、圆、椭圆、文字、矩形、多边形、曲线、圆角矩形)标签:图形androidpathfloatclass2012-01-20 20:02 151861人阅读评论(64) 收藏举报分类:android(12)版权声明:本文为博主原创文章,未经博主允许不得转载。
目录(?)[+] 1、首先说一下canvas类:Class OverviewThe Canvas class holds the "draw" calls. To draw something, you need 4 basic components: A Bitmap to hold the pixels, a Canvas to host the draw calls (writing into the bitmap), a drawing primitive (e.g. Rect, Path, text, Bitmap), and a paint (to describe the colors and styles for the drawing).这个类相当于一个画布,你可以在里面画很多东西;我们可以把这个Canvas理解成系统提供给我们的一块内存区域(但实际上它只是一套画图的API,真正的内存是下面的Bitmap),而且它还提供了一整套对这个内存区域进行操作的方法,所有的这些操作都是画图API。
也就是说在这种方式下我们已经能一笔一划或者使用Graphic来画我们所需要的东西了,要画什么要显示什么都由我们自己控制。
这种方式根据环境还分为两种:一种就是使用普通View的canvas画图,还有一种就是使用专门的SurfaceView的canvas来画图。
两种的主要是区别就是可以在SurfaceView中定义一个专门的线程来完成画图工作,应用程序不需要等待View的刷图,提高性能。
android 百度地图 教程
android 百度地图教程随着移动互联网的普及和发展,地图导航已经成为人们生活中不可或缺的一部分。
百度地图作为国内最主流的地图导航应用之一,拥有强大的功能和广泛的用户群体。
下面是一个关于如何使用百度地图的简要教程。
首先,你需要下载并安装百度地图应用。
你可以在应用商店或者百度官方网站上找到该应用,然后点击下载并按照提示进行安装。
安装完成后,在主屏幕上找到百度地图应用的图标并点击进入。
初次进入应用,你需要进行一些设置,比如选择你所在的城市。
接下来,你可以在搜索框中输入你想要搜索的地点或者地名。
百度地图会自动为你提供相关的搜索结果。
你可以点击搜索结果中的任意一个地点,然后查看地点的具体信息,比如地址、电话号码、营业时间等等。
如果这个地点是你想要的目的地,你可以点击“导航”按钮,百度地图会为你规划好最佳的行驶路线。
如果你当前的位置和目的地之间存在多条可选的路径,百度地图会为你提供这些不同的路径选择。
你可以根据自己的需求选择一条最合适的路线。
在导航过程中,百度地图会提供语音导航和实时路况信息。
你可以通过耳机或者车载音响系统来听取语音导航,这样你就可以专注于驾驶而不会因为看地图而影响安全。
同时,实时路况信息可以帮助你避开路况拥堵的区域,选择更节约时间的路径。
如果你需要查询周边的餐馆、酒店或者其他附近的服务设施,你可以点击屏幕下方的“附近”按钮,在搜索框中输入你想要查询的地点类型,比如“餐馆”,百度地图会为你显示附近的所有餐馆,并提供详细的信息和评价。
除了查询和导航功能,百度地图还提供一些其他实用的功能,比如公交地铁查询、实时公交到站查询、城市景点导览等等。
你可以根据自己的需求和兴趣来探索和使用这些功能。
总之,百度地图是一款非常实用和方便的应用,它可以帮助你快速准确地找到目的地并提供最佳的行驶路线。
无论你是出行、旅游还是生活,百度地图都能提供全方位的地图导航服务。
希望这个简要教程可以帮助你更好地使用百度地图。
记录开发基于百度地图API实现在地图上绘制轨迹并拾取轨迹对应经纬度的工具说明
记录开发基于百度地图API实现在地图上绘制轨迹并拾取轨迹对应经纬度的⼯具说明前⾔: 最近⼀直在做数据可视化⽅⾯的⼯作,其中平⾯可视化没什么难度,毕竟已经有很多成熟的可供使⽤的框架,⽐如百度的echart.js,highcharts.js等。
还有就是3D可视化了,整体来说难度也还好,通过WEBGL技术⼀般的可视化效果还是很好实现,如果对于WEBGL光线渲染⼒不从⼼的话直接通过three.js来做也是很⽅便。
其实真正困扰我开发的是可视化项⽬中⼀般会存在很多基于地图⽅⾯的开发⼯作,只要是涉及到地图的可视化必然会跟经纬度相关联。
如果是单纯获取地图上某个特定城市或者特定点的经纬度这个很好实现,通过便可以很⽅便的获取到,但是这个系统只能是获取单个点的经纬度,并不能根据地图上的特定轨迹来拾取轨迹对应的经纬度信息。
因为在实际开发过程中,地图可视化项⽬最多的还是在地图上绘制轨迹的需求。
举个实际⼯作中遇到的需求,需要在某城市的地图上绘制出该城市所有地铁线路图,并且在对应站点展⽰⾼峰流量。
这个需求中特定站点的绘制相对简单,可以通过上述讲的百度地图经纬度拾取系统来获取,但是对应的地铁轨迹的经纬度信息获取就蛋疼了,在⽹上查询了好久都没能够查询到(可以肯定的是⽹上肯定有,但是我就是查不到)。
针对上⾯所讲的困惑,我就有了想⾃⼰制作⼀个⼯具的想法,这个⼯具可以根据⽤户在地图上绘制的轨迹对应的将轨迹的经纬度信息保存并提供给⽤户,先不说这个想法是否能够帮助到其他⼈,⾄少能够满⾜我⼯作的需求。
⼯具原理说明: 1 ⽤户在⼯具集成地图上绘制轨迹(点轨迹,圆轨迹,线轨迹,多边形轨迹,四边形轨迹); 2 ⼯具内部调⽤集成地图API获取绘制轨迹的经纬度信息; 3 将集成地图API返回的经纬度信息展⽰在⼯具对应的位置中,每次绘制玩⼀个轨迹就⽣成⼀条经纬度信息; 4 ⽤户通过⼯具提供的查看轨迹详情按钮可以查看经纬度信息并且可以直接复制到⾃⼰项⽬中使⽤; 5 为了满⾜项⽬中⼀个需求包含多个轨迹的可能性,因此增加了⼀个合并轨迹经纬度信息的功能。
Android使用百度定位SDK方法及错误处理
Android使⽤百度定位SDK⽅法及错误处理之前我的项⽬中的位置定位使⽤的是基站⽅法,使⽤的Google提供的API,但是前天中午突然就不返回数据了,到⽹上搜了⼀下才知道,Google的接⼝不提供服务了,基于时间紧迫⽤了百度现有的SDK,但是在使⽤过程中第⼀次获取位置总是空值,经过多次实验终于成功。
当然,如果需要精确的位置,你可以再加上位置偏移算法。
我的应⽤对这个要求不⾼,就没做,⼀搜⼀⼤把,就不多说了。
下⾯这段话来⾃百度地图API>定位SDK百度地图定位SDK免费对外开放,⽆需申请key。
在使⽤百度定位SDK前,希望先阅读百度定位地图的API。
如果使⽤则被视为对使⽤条款的完全接收,并同意接收本协议的各项条款约束。
⽬前百度地图定位SDK只⽀持Android和Symbian量⼤平台,其他产品正在开放中。
下⾯事例是使⽤Android平台的部分代码。
对于这个平台百度的开放⼈员已经写了完整的demo,把⼯程导⼊到eclipse中之后⼀般没有错误,如果报错的话,eclipse也会给出提⽰。
⼀般可以通过将propertie.properties⽂件名字改为default.properties就可以了,如果还有错误的话,显⽰⼯程activity错误啊什么的,就是SDK版本不对的问题了,你可以通过他的manifest⽂件查看<uses-sdk android:minSdkVersion="8" />找到这个最⼩值,⽐如我下载的是2.6他的最低版本是5,我eclipse默认版本是8,就可以同过右键单击该⼯程,选择最下⾯那个properties 项,然后在弹出对话框的右侧列表中选择Android,在左侧选择API level为5,也就是2.0,然后确定。
就⽊有问题了。
下⾯说⼀下使⽤该API的具体步骤:也可以查看百度定位SDK⾃⼰的开发指南1、⾸先第⼀步就是搭配环境:①先将百度demo中的libs⽂件夹复制到⾃⼰的⼯程。
android 画虚线、实线,画圆角矩形,一半圆角
android 画虚线、实线,画圆角矩形,一半圆角建立dotted_line_gray.xml文件放在drawable文件夹下面。
android:shape="line" 可以修改你想要的形状<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="/apk/res/android"android:shape="line"><!-- 显示一条虚线,破折线的宽度为dashWith,破折线之间的空隙的宽度为dashGap,当dashGap=0dp时,为实线 --><stroke android:width="1dp" android:color="#D5D5D5"android:dashWidth="2dp" android:dashGap="3dp" /><!-- 虚线的高度--><size android:height="2dp" /></shape>然后在布局的xml里面:作为ImageView或者Linearlayout等作为背景源就可以了。
<LinearLayoutandroid:id="@+id/activity_line"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_marginLeft="5dip"android:layout_marginRight="5dip"android:background="@drawable/dotted_line_gray" />---------2、画圆角矩形建立rect_gray.xml文件放在drawable文件夹下面。
android 百度地图画线路
已知一组点的位置,将这些点在地图上连成一条线。
(参考api)gPoints = new ArrayList<GeoPoint>();// 测试数据// 故宫左上角GeoPoint geoPoint1 = new GeoPoint( ( int )( 39.929 * 1E6 ), (int )( 116.397 * 1E6 ) );// 故宫右下角GeoPoint geoPoint2 = new GeoPoint( ( int )( 39.920 * 1E6 ), (int )( 116.408 * 1E6 ) );GeoPointpalaceCenter = new GeoPoint( ( int )( 39.924 * 1E6), ( int )( 116.403 * 1E6 ) );GeoPoint geoPoint11 = new GeoPoint( ( int )( 39.929 * 1E6 ),( int )( 116.403 * 1E6 ) );GeoPoint geoPoint22 = new GeoPoint( ( int )( 39.920 * 1E6 ),( int )( 116.403 * 1E6 ) );gPoints.add( geoPoint1 );gPoints.add( geoPoint11 );gPoints.add(palaceCenter );gPoints.add( geoPoint2 );gPoints.add( geoPoint22 );// 创建一个覆盖故宫范围的距形Geometry palaceGeometry = new Geometry();// GeoPoint[] gp =// { geoPoint1,geoPoint11,palaceCenter,geoPoint2,geoPoint22 };GeoPoint[] gp =( GeoPoint[] )gPoints.toArray( new GeoPoint[ gPoints.size() ] );palaceGeometry.setPolyLine(gp );// palaceGeometry.setEnvelope(geoPoint1, geoPoint2);Symbol palaceSymbol = new Symbol();// 创建样式Symbol.ColorpalaceColor = palaceSymbol.new Color();// 创建颜色palaceColor.red = 0;// 设置颜色的红色分量palaceColor.green = 0;// 设置颜色的绿色分量palaceColor.blue = 255;// 设置颜色的蓝色分量palaceColor.alpha = 126;// 设置颜色的alpha值// 创建一个边框对象// 参数 - 5:边框的线宽// 参数 - polygonSymbol.new Color(0xffff0000):边框的颜色palaceSymbol.setSurface( palaceColor, 0, 3 );// 设置样式参数,颜色:palaceColor是否填充距形:是线// 创建故宫的Graphic对象Graphic palaceGraphic = new Graphic(palaceGeometry, palaceSymbol );/*** 创建一个GraphicsOverlay来装载故宫的Graphic* 构造参数mMapView为MapView对象,如果不知道如何生成MapView对象,可参看Hello World章节。
12种画线方法
12种画线方法今天,我们来分享一种常用的画线方法——12种画线方法。
这种方法可以帮助我们准确、有序地绘制出复杂的图案和图像,是许多绘画和设计爱好者必备的基本技能。
步骤1:画一条直线要画一条直线,我们可以使用一支铅笔或细线笔。
首先,将笔垂直于纸面,然后在规定的位置放下笔尖,并沿着需要绘制的方向慢慢地草草挣扎,控制好手部的力道和速度,直到画出一条直线为止。
步骤2:画一条斜线与画直线类似,我们可以先将铅笔或细线笔垂直于纸面,然后在另一端放下笔尖,从上到下或从下到上绘制一条斜线,并保持笔尖的位置。
步骤3:画一条水平线要画一条水平的直线,我们可以使用直尺或其他直线工具。
将直线工具放在需要绘制的位置上,然后用笔顶或细线笔沿着直线工具的边缘轻轻地画出一条水平的线。
步骤4:画一条垂直线同样地,我们可以使用直尺或其他直线工具,将其放在需要绘制的位置上,然后用笔垂直于直线工具的边缘,从上到下或从下到上画一条垂直的线。
步骤5:画一条圆弧线在画圆弧线之前,我们需要先确定一个圆心和半径。
将半径放在纸面上的圆心位置上,然后旋转铅笔或细线笔,让笔尖固定在纸面上,并沿着圆心所在的轴线转圈,最后画出一条圆弧线。
步骤6:画一条半圆线同样地,画半圆线也需要确定圆心和半径。
我们可以先在纸面上画一条直线,然后在该直线中点的位置上画一个圆,最后从圆的两个端点开始绘制半圆线。
步骤7:画一条S曲线S曲线是一种美丽而流畅的曲线,它主要由两个相互独立的弧形组成。
为画出S曲线,我们可以先将笔放在纸面上的一端,开始沿着需要绘制的方向画一条弧形线,然后再以同样的方式在相反的方向上画出另一个弧形线。
步骤8:画一条曲线为画出一个连续流畅的曲线,我们可以使用多种方法。
例如,我们可以使用贝塞尔曲线,从一条直线开始,然后使用控制点来创造一条平滑的曲线。
步骤9:画一条Z字型线画Z字型线非常简单。
我们只需要从一侧开始向上或向下画一条直线,然后回到另一个侧面,再向下或向上画出另一条直线,最后在两条直线的交叉点处画一个小箭头即可。
android 10个点的二阶贝塞尔曲线
android 10个点的二阶贝塞尔曲线
答:在Android中,你可以使用Path类和Canvas类来绘制一个二阶贝塞尔曲线。
以下是一个简单的例子,它绘制了一个由10个点组成的二阶贝塞尔曲线:
java
Path path = new Path();
path.moveTo(0, 0);
path.quadTo(100, 200, 200, 100);
Canvas canvas = new Canvas();
canvas.drawPath(path, paint);
在这个例子中,moveTo()方法将画笔移动到起点,quadTo()方法则绘制了一个二阶贝塞尔曲线。
这个曲线有两个控制点,它们是曲线上的两个关键点。
请注意,这个例子只是一个简单的示例,你可能需要根据你的具体需求来调整曲线的起点、终点和控制点。
同时,你还需要创建一个Paint对象,并设置其颜色、样式等属性,以便在画布上绘制路径。
Android的百度地图开发
– 返回授权验证错误 ,iError 为错误号,值为300,验证失败
• void onGetNetworkState(int iError) – 返回网络错误 – 参数:iError - 错误号
MapView
一个显示地图的视图控件,当被焦点选中时,它能捕获按键事件和触摸手势 去平移和缩放地图 – setBuiltInZoomControls(boolean on):设置是否吭用内置的缩放控件 – getController():返回地图的MapController,这个对象可用于控制和 驱劢平移和缩放 – setDoubleClickZooming(boolean bDoubleClickZooming) : 设置 mapview是否支持双击放大效果 – getOverlays():获取当时地图控件中的已有图层 – re是免费的,接口使用无次数限网址:
/map/sdkandroid.htm • 获取密钥 申请新密钥及查看原先申请的密钥
– Activity及地图生命周期管理
– 地图控制相关配置 – 在一个MapView后面创建和销毁服务
– 定位结果返回后的处理
BMapManager
• 地图、定位、搜索功能都需要用BMapManager对象来管理, BMapManager 提供四个接口:init()、start()、stop()、destroy()。在应用程序里生成 BMapManager 对象并初始化,在程序退出时调用destroy(),在需要使用sdk 功能的Activity的onCreate()方法里调用start()方法,onDestroy()方法里调用
常使用地图中的功能迚行编程了。
• 上图包中的liblockSDK3.1.jar及对应的so文件 是用于定位不搜索功能的,如果丌需要可以丌 加入到项目当中
点画线的用途
点画线的用途
点画线在互联网领域被普遍使用,它可以帮助网络用户节省宝贵的时间。
一、点画线的好处
(1)节约时间。
点画线在互联网环境中的运用,可以节省用户搜索网页的时间,从而提高检索效率。
比如,当网络用户想要找到一些指定内容时,就可以使用点画线,即可快速检索出关键字所在的网站,一举两得。
(2)可视化搜索。
点画线流转的图片可以以一种可视化的方式展示,让用户更容易理解网页内容,结合图文信息更容易被记忆,更容易在网上快捷查找,满足用户对检索信息的高速性要求。
二、点画线的应用场景
(1)搜索引擎的点击图。
当用户在搜索引擎中搜索关键词时,会在页面中显示出相应的点击图,可以让用户很容易地理解页面的点击情况,从而更加便捷地找到所需要的内容。
(2)社交网络的快捷检索。
在社交网络,例如,微博、豆瓣等社区,用户也可以方便的使用点画线的形式查找需要的内容。
比如,在豆瓣上,用户可以看到全部人物关注的动态,用户可以快速的检索出自己所关注的人的动态,并进行实时的交流。
三、点画线的未来发展
点画线在互联网环境中的应用将会越来越普遍,它也将成为未来网页搜索的主要工具,而且将会有越来越多实用性更强大的点画线出现在网页中,为用户提供更加实用的服务。
另一方面,点画线可以降低检索时间、更加便捷快速地找到想要的内容,在日常网页搜索中显得尤其实用。
总之,点画线在互联网领域拥有重要地位,对于提高网络用户搜索效率起到了至关重要的作用,未来的发展前景也是十分乐观的,用户也可以指望得到更多用户实用性更强的互联网服务。
如何在百度地图上绘制道路(矢量线段)并导出为图片
如何在百度地图上绘制道路(矢量线段)并导出为图片万能地图下载器的矢量线绘制功能可以在百度地图上绘制铁路线、高速路、国道、省道、县道、等级公路、乡村路、轻轨路线、高铁路线、公交路线、城市一级道路、城市二级道路、城市三级道路和街道等矢量线状数据。
这里我们以绘制国道为例,通过以下几个步骤说明如何在地图中绘制线路,但请确保你的软件版本为X3.0build1620及以上。
第一步:打开标注列表
首先切换地图类型为“百度地图”,然后点击工具栏上的“标注”工具会显示标注列表,如下图所示。
第二步:绘制矢量线
点击标注列表中的“线”工具,在地图中的正确位置单击开始绘制线,右键结束绘制后会显示属性对话框,你可以设置线的颜色、宽度和不透明度等参数,如下图所示。
点击“长度/坐标”选项可以查看线的长度和节点坐标值(后续版本会提供导出坐标和提取高程的功能),如下图所示。
第三步:导出叠加道路
下载地图时为了要叠加矢量标注,我们务必要勾选“叠加矢量标注”选项,如下图所示。
至于下载卫星地图的具体方法,请参阅教程:如何下载谷歌高清卫星影像。
Andriod 绘制图形 、Canvas、Paint、Color、Typeface、Path、RectF、Point、绘制几何图形
Andriod绘制图形android.graphics包是核心渲染包,它提供了一些初级图形工具,诸如画布、颜色过滤器、画笔等,可以让你直接在屏幕上进行图像处理。
这个包中提供了很多类,下面我们就看一下这个包中主要的几个类。
一、Canvas类android.graphics.CanvasCanvas类好比手机中的画纸,我们可以在Canvas上画图形或者图像。
一般我们用android来绘画的时候,需要四个组成部分:1、位图:包含像素2、Canvas画板:包含绘画内容,写入位图3、初始图形:如Rect、Bitmap、text等4、Paint:用来描述上面初始图形的颜色和类型等Canvas类提供了三个构造方法:Public Canvas();构造一个默认无参的Canvas对象Public Canvas(Bitmap bitmap);根据一个Bitmap构造一个Canvas对象Public Canvas(GL gl);根据一个GL来构造一个对象下面我们来了解一下Canvas类提供的方法:在Canvas类提供的方法中比较多经常用的是以draw开头的方法,draw开头的方法很容易理解就是向画板中画图形,比如可以向Canvas中画位图,给图形填充颜色等。
比如方法:drawArc(RectF oval, float startAngle, float sweepAngle, boolean useCenter, Paint paint)画弧形drawCircle(float cx, float cy, float radius, Paint paint)画圆形Canvas类提供的方法比较多,在此我们不一一赘述,在后面的内容中,我将给大家举几个实际的应用程序例子来演示Canvas类的使用方法。
二、Paint类android.graphics.PaintPaint类包含有用来画几何图形、文本、位图的类型和颜色等信息,如果把Canvas类看作是画板,那我们可以把Paint类看做是画笔,可以根据需要画出不同颜色和样式的图形、文本等内容。
android画虚线、实线,画圆角矩形,一半圆角
android 画虚线、实线,画圆角矩形,一半圆角建立dotted_line_gray.xml文件放在drawable文件夹下面。
android:shape="line" 可以修改你想要的形状<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="/apk/res/android"android:shape="line"><!-- 显示一条虚线,破折线的宽度为dashWith,破折线之间的空隙的宽度为dashGap,当dashGap=0dp时,为实线 --><stroke android:width="1dp" android:color="#D5D5D5"android:dashWidth="2dp" android:dashGap="3dp" /><!-- 虚线的高度--><size android:height="2dp" /></shape>然后在布局的xml里面:作为ImageView或者Linearlayout等作为背景源就可以了。
<LinearLayoutandroid:id="@+id/activity_line"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_marginLeft="5dip"android:layout_marginRight="5dip"android:background="@drawable/dotted_line_gray" />---------2、画圆角矩形建立rect_gray.xml文件放在drawable文件夹下面。
百度地图画运动轨迹,带箭头方向、纹理
百度地图画运动轨迹,带箭头方向、纹理//1.创建一个经纬度数组List<LatLng> latLngPolygon = new ArrayList<LatLng>();//2.这是一组经纬度集合(数据自己找)LatLng pt1 = new LatLng(list.get(i). lat, list.get(i). lng);latLngPolygon.add(pt1);//经纬度添加到数组里面//3.到你要用的方法调用画轨迹方法drawMyRoute(latLngPolygon);//4.画轨迹方法protected void drawMyRoute(List<LatLng> points2) {//添加纹理图片List<BitmapDescriptor> textureList = new ArrayList<BitmapDescriptor>();BitmapDescriptor mRedTexture = BitmapDescriptorFactory .fromAsset("icon_road_red_arrow.png");//箭头图片textureList.add(mRedTexture);// 添加纹理图片对应的顺序List<Integer> textureIndexs = new ArrayList<Integer>();for (int i=0;i<points2.size();i++){textureIndexs.add(0);}OverlayOptions options = new PolylineOptions().textureIndex(textureIndexs)//设置分段纹理index数组.customTextureList(textureList)//设置线段的纹理,建议纹理资源长宽均为2的n次方.dottedLine(true).color(0xAAFF0000).width(15).points(points2);mBaiduMap.addOverlay(options);}//5.箭头图片自己下载放到assets文件夹里面//6.效果图片。
Android绘图之Paint的使用方法详解
Android绘图之Paint的使⽤⽅法详解前⾔⼤家都知道在Android中,⾃定义控件是⼀个⾮常重要的知识点,⽽⾃定义控件对Android开发者是⼀个难点,考验开发⼈员对View原理的理解,对于继承View的⾃定义控件,⼀般都需要重写onDraw⽅法,⽽且往往需要开发⼈员能够掌握Paint这个类。
简介The Paint class holds the style and color information about how to draw geometries, text and bitmaps.Paint:该类保存了绘制⼏何图形、⽂本和位图的样式和颜⾊信息。
也就是说我们可以使⽤Paint保存的样式和颜⾊,来绘制图形、⽂本和bitmap,这就是Paint的强⼤之处。
接下来我们使⽤Paint来绘图,并且看看该类有哪些样式和颜⾊。
Paint的使⽤使⽤Paint之前需要初始化mPaint = new Paint();设置笔(Paint)的颜⾊和alpha值:mPaint.setColor(Color.BLUE);mPaint.setAlpha(255);注意:alpha的范围是[0..255],⽽不是[0..1],是⼀个int值。
设置画笔的样式:通过mPaint.setStyle()来设置样式。
public enum Style {/*** Geometry and text drawn with this style will be filled, ignoring all* stroke-related settings in the paint.*/FILL (0),/*** Geometry and text drawn with this style will be stroked, respecting* the stroke-related fields on the paint.*/STROKE (1),/*** Geometry and text drawn with this style will be both filled and* stroked at the same time, respecting the stroke-related fields on* the paint. This mode can give unexpected results if the geometry* is oriented counter-clockwise. This restriction does not apply to* either FILL or STROKE.*/FILL_AND_STROKE (2);Style(int nativeInt) {this.nativeInt = nativeInt;}final int nativeInt;}总共有三种画笔的样式FILL:填充内容;STROKE:描边;FILL_AND_STROKE:填充内容并描边。
安卓手机用C4droid+SDL库画线
C4droid以及SDL库安装
C4droid基本使用
关于画点,SDL的操作2/SDL.h” #include <math.h> #define FUNCTION(x) x*x SDL_Window *win = NULL; SDL_Renderer *render = NULL; int main() { SDL_Init(SDL_INIT_EVERYTHING); win = SDL_CreateWindow(“SDL2 DRAW”, 0, 0, 1080, 1920, 1);//设置画布 render = SDL_CreateRenderer(win, -1, NULL); SDL_RenderClear(render); SDL_SetRenderDrawColor(render, 255, 255, 255, 255);//颜色前三个是红绿蓝,最后一个是透明度
SDL游戏库
SDL(Simple DirectMedia Layer)是一套开放源代码 的跨平台多媒体开发库,使用C语言写成。SDL提供了数 种控制图像、声音、输出入的函数,让开发者只要用相 同或是相似的代码就可以开发出跨多个平台(Linux、 Windows、Mac OS X等)的应用软件。目前SDL多用 于开发游戏、模拟器、媒体播放器等多媒体应用领域。
for(intDrawPoint(render,i-30,i); SDL_RenderPresent(render); SDL_Delay(10000); //画布停留时间 return 0; }
例子
在up.hta
对应VC版本安装
最基本的使用方法
#include<iostream.h>
#include<graphics.h>
12种画线方法
12种画线方法一、直线画法直线是最基本的画线方法之一。
通过两点之间的连线,可以画出一条直线。
直线具有无限延展性,可以水平、垂直、或者倾斜。
二、曲线画法曲线是由一系列的弧线组成的,可以是圆弧、椭圆弧或者其他形状的弧线。
曲线具有较强的表现力,可以画出各种曲线形状。
三、虚线画法虚线是由一系列间断的小线段组成的。
与实线相比,虚线更具有灵活性和变化性,可以用于表示边界、轮廓或者某种特定的效果。
四、点线画法点线是由一系列的点组成的线条。
点线常用于表示路径、轨迹或者线性变化。
五、划线画法划线是通过划动画笔或者其他工具,在纸张或者其他平面上留下痕迹。
划线可以用于绘制图案、描绘轮廓或者标记特定位置。
六、填充画法填充是通过在闭合的区域内使用颜色、纹理或者其他材料进行填充。
填充可以用于给图形增加立体感或者丰富绘画效果。
七、阴影画法阴影是通过使用不同的灰度或者颜色进行绘制,以模拟物体表面的光线变化。
阴影可以增强图形的立体感和逼真度。
八、渐变画法渐变是通过在两个或者多个颜色之间进行平滑的过渡,以产生柔和、流动的效果。
渐变可以用于绘制背景、填充图形或者制作特效。
九、线条加粗画法线条加粗是通过增加线条的宽度,使其更加突出和醒目。
线条加粗可以用于强调或者区分不同的元素。
十、线条变细画法线条变细是通过减少线条的宽度,使其更加细腻和柔和。
线条变细可以用于描绘细节或者模拟光线的变化。
十一、波浪线画法波浪线是由一系列的波浪形状组成的线条。
波浪线具有动感和曲线美感,可以用于装饰、描绘波浪或者水流等效果。
十二、曲线连接画法曲线连接是通过将多个曲线段连接在一起,形成连续的曲线。
曲线连接可以用于绘制复杂的曲线形状,或者连接不同的图形元素。
通过以上12种画线方法,我们可以在绘画中灵活运用,创造出各种丰富多样的效果和表达方式。
无论是绘制简单的几何图形,还是描绘复杂的自然景观,这些画线方法都可以为我们提供极大的帮助和创作灵感。
android_百度百科
编辑本段Android版本
Android 1.1 发布时间:发布于 2009 年 2 月 代表手机:T-MOBILE G1 Android 1.5 发布于 2009
年 5 月 代表手机:摩托罗拉CILQ Android 1.6 2009 年 9 月发布 代表手机:索尼爱立信 X10 Android
OS系统,采用Android系统主要手机厂商包括宏达电子(HTC)、三星(SAMSUNG)、摩托罗拉(MOTOROLA)、LG、Sony
Ericsson等,使之跃居全球最受欢迎的智能手机平台,Android系统不但应用于智能手机,也在平板电脑市场急速扩张。
编辑本段系统架构
应用程序
Android以Java为编程语言,使接口到功能,都有层出不穷的变化,其中Activity等同于J2ME的MIDlet,一个 Activity
是就2D或3D的内容显示到屏幕上。Android使用工具链(Toolchain)为Google自制的Bionic Libc。
Android采用OpenCORE作为基础多媒体框架。OpenCORE可分7大块:PVPlayer、PVAuthor、Codec、PacketVideo
Multimedia Framework(PVMF)、Operating System Compatibility
Android2.3 Gingerbread
Android2.4
Android3.0 Honeycomb
开放手机联盟1、手机和其他终端制造商
2、移动运营商
3、半导体公司
4、软件公司
简介
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
textDrawableView.setDrawingCacheEnabled(true);
int position, long id) {
GridView listView = (GridView) Fra bibliotekarent;
@SuppressWarnings("unchecked")
}
lineGeometry.setPolyLine(linePoints);
Symbol lineSymbol = new Symbol();
Symbol.Color lineColor = lineSymbol.new Color();
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
GeoPoint[] linePoints = new GeoPoint[geoPoints.size()];
for(int j=0;j<geoPoints.size();j++){
linePoints[j] = geoPoints.get(j);
lineColor.red = 255;
lineColor.green = 0;
lineColor.blue = 0;
lineColor.alpha = 126;
lineSymbol.setLineSymbol(lineColor, 5);
itemOverlay.removeAll();
// 构建点并显示
Geometry lineGeometry = new Geometry();
TextDrawableViewUp textDrawableView;
for(int i=0;i<list.size();i++){
textDrawableView = new TextDrawableViewUp(this,"");
textDrawableView.setTxVisibleGone();
textDrawableView.measure(View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED), View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
public GridView gridView;
public TextView textview;
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
HashMap<String, String> item = (HashMap<String, String>) listView
.getItemAtPosition(position);
Intent intent;
public FootPrintListViewAdapter(ArrayList<ArrayList<Map<String, String>>> codelist) {
this.list = codelist;
}
private class ViewHolder {
OverlayItem item = new OverlayItem(new GeoPoint ((int)(myGeopoint.getLat()*1E6)
,(int)(myGeopoint.getLng()*1E6)), "", "");
Graphic lineGraphic = new Graphic(lineGeometry, lineSymbol);
graphicsOverlay = new GraphicsOverlay(mMapView);
graphicsOverlay.setData(lineGraphic);
.toString());
mFootPrintGridViewAdapter = new FootPrintGridViewAdapter(list.get(position));
holder.gridView.setAdapter(mFootPrintGridViewAdapter);
if (mSharePreferences.getString("mapType", "").equals("GOOGLE")) {
/**
* 足迹单行适配器
*/
private class FootPrintListViewAdapter extends BaseAdapter {
private ArrayList<ArrayList<Map<String, String>>> list;
textDrawableView.destroyDrawingCache();
textDrawableView.reWriteImg(R.drawable.marker_g_red);
textDrawableView.buildDrawingCache();
if(linePoints.length > 0){
mMapController.setCenter(linePoints[0]);
}else {
}
mMapView.refresh();
}
holder = new ViewHolder();
holder.gridView = (GridView) view
.findViewById(R.id.gridview_footprint);
final ViewHolder holder;
if (convertView == null) {
view = getLayoutInflater().inflate(
yout.footprint_listview_item, null);
holder.textview = (TextView) view
.findViewById(R.id.textview_footprint);
view.setTag(holder);
holder.gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
geoPoints.add(new GeoPoint ((int)(myGeopoint.getLat()*1E6)
,(int)(myGeopoint.getLng()*1E6)));
}
}
} else {
holder = (ViewHolder) view.getTag();
}
holder.textview.setText(list.get(position).get(0).get("date")
mMapView.getOverlays().clear();
mMapView.getOverlays().add(graphicsOverlay);
mMapView.getOverlays().add(itemOverlay);
mMapController.setZoom(10);
private void planRoute(ArrayList<Map<String, String>> list)
{
ArrayList<GeoPoint> geoPoints = new ArrayList<GeoPoint>();
OverlayTest itemOverlay = new OverlayTest(null, mMapView);
if(!list.get(i).get("latitude").equals("")){
Tool.MyGeopoint myGeop4;latitude"),list.get(i).get("longitude"));
Bitmap bm = textDrawableView.getDrawingCache();
item.setMarker(new BitmapDrawable(bm));
itemOverlay.addItem(item);