Android中ListView分割线的设置

常用xml配置方式

1
2
3
4
5
<ListView
android:id="@+id/list_define_layers"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:cacheColorHint="@android:color/transparent"/>

呈现的效果如下

默认分割线

调整布局高度模式

将layout_height由”wrap_content”设置为”match_parent”后底部的分割线也被显示出来

1
2
3
4
5
<ListView
android:id="@+id/list_define_layers"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:cacheColorHint="@android:color/transparent"/>

底部分割线显示

调整分割线颜色

分割线颜色由divider属性设置,但dividerHeight属性一定不能为0,必须大于0

1
2
3
4
5
6
7
<ListView
android:id="@+id/list_define_layers"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:divider="#B0B0B0"
android:dividerHeight="1dp"
android:cacheColorHint="@android:color/transparent"/>

底部分割线显示

调整分割线样式

分割线样式利用drawable来定义一个xml文档,由divider属性设置,但dividerHeight属性必须大约drawable设置的高度,另外layerType必须设置为”software”

1
2
3
4
5
6
7
8
9
10
11
12
13
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="line" >
<stroke
android:dashWidth="5dp"
android:dashGap="3dp"
android:width="1dp"
android:color="#008B00" />
<size android:height="1dp" />
</shape>
</item>
</layer-list>
1
2
3
4
5
6
7
8
<ListView
android:id="@+id/list_define_layers"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:divider="@drawable/dividerline"
android:dividerHeight="2dp"
android:layerType="software"
android:cacheColorHint="@android:color/transparent"/>

底部分割线显示

上述配置代码中的android:cacheColorHint=”@android:color/transparent”则是为了防止列表过长时拖动发生黑色背景做的设置。

追随自己,一路向南

12月8日8:25在首都机场浓重的雾霾中乘坐川航航班出发,计划中经停万州,但由于万州大雾航班改停重庆江北机场,经过加油后飞往昆明,最终晚点一小时于14::20落地长水机场。

清晨七点半的首都机场

首都机场
首都机场

中午11点的重庆江北机场

江北机场

下午14点20分的昆明长水机场

长水机场
长水机场

入住宾馆后吃一碗热辣的米线

米线

昆明市区闲逛

闲逛
闲逛
闲逛

leaflet中将地图导出pdf文件

在leaflet和openlayers中并没有提供地图导出图片或pdf的方法,如果需要导出地图的内容,一般都是使用 HTMLCanvasElement.toBlob() 的方法,把地图内容导出成为一个图片类型的Blob对象了(替换了原先非标准的mozGetAsFile方法).toBlob方法是异步的:

void canvas.toBlob(callback, mimeType, qualityArgument);

默认的图片输出格式是PNG格式,同样可以指定保存为其他格式,还可以指定图像保存的压缩质量:

canvas.toBlob(function(blob){…}, “image/jpeg”, 0.95); // 用95%质量的JPEG格式保存

导出图片方法

把画布图形保存为png格式文件并添加到页面

1
2
3
4
5
6
7
8
9
10
11
12
var canvas = document.getElementById("canvas");
canvas.toBlob(function(blob) {
var newImg = document.createElement("img"),url = URL.createObjectURL(blob);
newImg.onload = function() {
// no longer need to read the blob so it's revoked
URL.revokeObjectURL(url);
};
newImg.src = url;
document.body.appendChild(newImg);
});

利用FileSaver可以把画布图形保存为png格式文件并下载

1
2
3
4
var canvas = document.getElementById("canvas");
canvas.toBlob(function(blob) {
saveAs(blob, 'map.png');
});

把画布图形保存为icon格式文件并添加下载链接(只支持Mozilla)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
var canvas = document.getElementById("canvas");
var d = canvas.width;
ctx = canvas.getContext("2d");
ctx.beginPath();
ctx.moveTo(d / 2, 0);
ctx.lineTo(d, d);
ctx.lineTo(0, d);
ctx.closePath();
ctx.fillStyle = "yellow";
ctx.fill();
function blobCallback(iconName) {
return function(b) {
var a = document.createElement("a");
a.textContent = "Download";
document.body.appendChild(a);
a.style.display = "block";
a.download = iconName + ".ico";
a.href = window.URL.createObjectURL(b);
}
}
canvas.toBlob(blobCallback('passThisString'), 'image/vnd.microsoft.icon','-moz-parse-options:format=bmp;bpp=32');

转换为pdf方法

利用jsPDF输出pdf文件

1
2
3
4
5
6
7
8
9
10
objImageData = canvas.toDataURL("image/jpeg");
fileName = fileName + ".pdf";
var doc = new jsPDF();
var pagewidth = canvas.width / 3;
var pageheight = canvas.height / 3;
doc.addPage(pagewidth + 20, pageheight + 20);
doc.deletePage(1);
doc.addImage(objImageData, 'JPEG', 10, 10, pagewidth, pageheight);
doc.save(fileName);

跨域的处理

HTMLCanvasElement.toBlob()、HTMLCanvasElement.toDataURL()等方法在地图有跨域图片的情况下无法使用,浏览器会以不安全的访问来拒绝生成跨域图片的二进制对象或URL。

感谢Github提供空间,利用Hexo搭建了此站点

最初的想法源于今年五月份儿的同学聚会,毕业十五年后大家重聚,非常激动,拍摄了很多的照片、视频,本想把这些东西集中起来做成一个压缩包发给各位同学留念,但收集完成后发现文件太大,逐个发送会非常麻烦,所以想做一个网页,不需要下载就可以在线观看。
耗费两天的时间,利用MeGUI把视频压缩、添加文字注释,做一个静态的网页放到平时做项目租用的腾讯云服务器上,提供一个IP地址让同学们访问,但租用的云服务器在项目结束后就会停止,也不想再续费延期,所以就想找个免费的空间,搜索了一下发现用Github Pages提供了300M的免费空间,正好在阿里云上购买了一个域名一直也未使用,于是用Hexo生成静态网页放到Github上发布,购买的域名也指向Github Pages,物尽其用就有了这个小站。
Github这样的站点已经成为我们窥探源码世界的一扇窗口,每当看到共享出鬼斧神工一样的代码,结合它所倡导的共享、协作的理念,相信每一个码工都会心生敬意。
这个时代,感谢有你~~

,