使用mapbar 地图sdk要关闭硬件加速

使用mapbar地图,要求关闭硬件加速。应该是sdk没做好。

关闭的不只是地图页面,相关跳转页面也要加入。



一下来自网上

Android的硬件加速

      Android从3.0(API Level 11)开始,在绘制View的时候支持硬件加速,充分利用GPU的特性,使得绘制更加平滑,但是会多消耗一些内存。

      开启或关闭硬件加速:

      由于硬件加速自身并非完美无缺,所以Android提供选项来打开或者关闭硬件加速,默认是关闭。可以在4个级别上打开或者关闭硬件加速:

      Application级别:<applicationandroid:hardwareAccelerated="true" ...>

      Activity级别:<activity android:hardwareAccelerated="false" ...>

      Window级别:

getWindow().setFlags(
    WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,
    WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);

      注意:目前为止,Android还不支持在Window级别关闭硬件加速。

      View级别:

myView.setLayerType(View.LAYER_TYPE_HARDWARE, null);

      注意:目前为止,Android还不支持在View级别开启硬件加速。

      检测当前是否启用了硬件加速

复制代码
// 方法一
// 此方法返回true,如果myView挂在一个开启了硬件加速的Window之下,
// 也就是说,它在绘制的时候不一定使用了硬件加速,getDrawingCache
myView.isHardwareAccelerated();
                        
// 方法二
// 返回true,如果canvas在绘制的时候启用了硬件加速
// 尽量采用此方法来判断是否开启了硬件加速
canvas.isHardwareAccelerated();
复制代码

      理解View的绘制模型:

      1.没有硬件加速:invalidate the view hierarchy ------> draw the view hierarchy

      2.有硬件加速:invalidate the view hierarchy ------> record and update the display list ------> draw the display list

      硬件加速的限制:

      目前,Android对硬件加速的支持并非完美,有些绘制操作在开启硬件加速的情况下不能正常工作(具体的列表可以参考Android开发者文档)。

      不过Android可以保证内置的组件和应用支持硬件加速。因此,如果应用中只使用了标准UI组件,可以放心开启硬件加速。

      随着Android的版本升级,相信一段时间之后,硬件加速可以得到完美的支持。

      开启硬件加速之后的异常反应:

      1.某些UI元素没有显示:可能是没有调用invalidate

      2.某些UI元素没有更新:可能是没有调用invalidate

      3.绘制不正确:可能使用了不支持硬件加速的操作, 需要关闭硬件加速或者绕过该操作

      4.抛出异常:可能使用了不支持硬件加速的操作, 需要关闭硬件加速或者绕过该操作


爬取高德地图数据可以使用`requests`库和`BeautifulSoup`库。首先,需要获取全国地铁列表页面的HTML内容。可以通过以下代码实现: ```python import requests from bs4 import BeautifulSoup url = 'https://ditie.mapbar.com' response = requests.get(url) soup = BeautifulSoup(response.text, 'html.parser') ``` 接下来,需要从HTML中提取地铁信息。可以通过观察HTML源代码,发现地铁信息保存在`<div class="subway_list">`标签下的`<a>`标签中。可以使用以下代码提取地铁名称和链接: ```python subway_list = soup.find('div', {'class': 'subway_list'}) subways = subway_list.find_all('a') subway_info = [] for subway in subways: name = subway.text link = subway['href'] subway_info.append({'name': name, 'link': link}) ``` 接下来,需要访问每个地铁线路的页面获取地铁站点信息。可以使用以下代码实现: ```python for subway in subway_info: link = subway['link'] response = requests.get(link) soup = BeautifulSoup(response.text, 'html.parser') station_list = soup.find('div', {'class': 'station_list'}) stations = station_list.find_all('a') station_info = [] for station in stations: name = station.text lat = station['lat'] lng = station['lng'] station_info.append({'name': name, 'lat': lat, 'lng': lng}) subway['stations'] = station_info ``` 现在,`subway_info`列表就包含了全国所有地铁线路的信息,每个地铁线路包含它所包含的地铁站点信息。可以将这些信息写入CSV文件中: ```python import csv with open('subway.csv', 'w', newline='', encoding='utf-8') as csvfile: fieldnames = ['subway', 'station', 'lat', 'lng'] writer = csv.DictWriter(csvfile, fieldnames=fieldnames) writer.writeheader() for subway in subway_info: for station in subway['stations']: writer.writerow({ 'subway': subway['name'], 'station': station['name'], 'lat': station['lat'], 'lng': station['lng'] }) ``` 数据可视化可以使用`matplotlib`库和`pandas`库。可以使用以下代码读取CSV文件并创建一个包含所有地铁站点信息的数据框: ```python import pandas as pd df = pd.read_csv('subway.csv') ``` 接下来,可以使用以下代码绘制全国地铁站点分布图: ```python import matplotlib.pyplot as plt plt.figure(figsize=(10, 8)) plt.scatter(df['lng'], df['lat'], s=2, alpha=0.5) plt.title('Subway stations in China') plt.xlabel('Longitude') plt.ylabel('Latitude') plt.show() ``` 可以在地图上看到所有地铁站点的分布情况。如果想要根据地铁线路对站点进行着色,可以使用以下代码: ```python import matplotlib.cm as cm colors = cm.rainbow(df['subway'].factorize()[0] / len(df['subway'].unique())) plt.figure(figsize=(10, 8)) plt.scatter(df['lng'], df['lat'], s=2, alpha=0.5, c=colors) plt.title('Subway stations in China') plt.xlabel('Longitude') plt.ylabel('Latitude') plt.show() ``` 这样可以看到每个地铁线路的站点都被着不同的颜色。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值