- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章Android 马赛克(Mosaics)效果由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
前几天看见开源项目效果好赞,看了下代码,实现大致就是在原界面之上覆盖一成自定义的view,获取到点击的那个view的内容(bitmap),然后在覆盖的那个自定义view的特定位置画出来,之后就是对这个bitmap做一些列拆分,变化重绘的过程。在这里根据他对bitmap的拆分,感觉用来实现bitmap的效果也是不错的,就试着做一做.
在这里介绍使用两种方式实现马赛克效果.开始之前先看看效果 。
感觉还不错吧! 。
1、直接绘制 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
public
static
bitmap getmosaicsbitmap(bitmap bmp,
double
precent) {
long
start = system.currenttimemillis();
int
bmpw = bmp.getwidth();
int
bmph = bmp.getheight();
bitmap resultbmp = bitmap.createbitmap(bmpw, bmph, bitmap.config.argb_8888);
canvas canvas =
new
canvas(resultbmp);
paint paint =
new
paint();
double
unit;
if
(precent ==
0
) {
unit = bmpw;
}
else
{
unit =
1
/ precent;
}
double
resultbmpw = bmpw / unit;
double
resultbmph = bmph / unit;
for
(
int
i =
0
; i < resultbmph; i++) {
for
(
int
j =
0
; j < resultbmpw; j++) {
int
pickpointx = (
int
) (unit * (j +
0.5
));
int
pickpointy = (
int
) (unit * (i +
0.5
));
int
color;
if
(pickpointx >= bmpw || pickpointy >= bmph) {
color = bmp.getpixel(bmpw /
2
, bmph /
2
);
}
else
{
color = bmp.getpixel(pickpointx, pickpointy);
}
paint.setcolor(color);
canvas.drawrect((
int
) (unit * j), (
int
) (unit * i), (
int
) (unit * (j +
1
)), (
int
) (unit * (i +
1
)), paint);
}
}
canvas.setbitmap(
null
);
long
end = system.currenttimemillis();
log.v(tag,
"drawtime:"
+ (end - start));
return
resultbmp;
}
|
2、修改像素点 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
public
static
bitmap getmosaicsbitmaps(bitmap bmp,
double
precent) {
long
start = system.currenttimemillis();
int
bmpw = bmp.getwidth();
int
bmph = bmp.getheight();
int
[] pixels =
new
int
[bmph * bmpw];
bmp.getpixels(pixels,
0
, bmpw,
0
,
0
, bmpw, bmph);
int
raw = (
int
) (bmpw * precent);
int
unit;
if
(raw ==
0
) {
unit = bmpw;
}
else
{
unit = bmpw / raw;
//原来的unit*unit像素点合成一个,使用原左上角的值
}
if
(unit >= bmpw || unit >= bmph) {
return
getmosaicsbitmap(bmp, precent);
}
for
(
int
i =
0
; i < bmph; ) {
for
(
int
j =
0
; j < bmpw; ) {
int
lefttoppoint = i * bmpw + j;
for
(
int
k =
0
; k < unit; k++) {
for
(
int
m =
0
; m < unit; m++) {
int
point = (i + k) * bmpw + (j + m);
if
(point < pixels.length) {
pixels[point] = pixels[lefttoppoint];
}
}
}
j += unit;
}
i += unit;
}
long
end = system.currenttimemillis();
log.v(tag,
"drawtime:"
+ (end - start));
return
bitmap.createbitmap(pixels, bmpw, bmph, bitmap.config.argb_8888);
}
|
从效率上来看,第二中方式效率会高10倍,只要是因为第一种方式绘制的次数太多了,而绘制是比较费时间的。这里特别提示,不要在大量的循环语句内部使用log.v(...),这是一个很耗时间的操作.
是不是很有趣,大家可以亲自动手试验一下.
最后此篇关于Android 马赛克(Mosaics)效果的文章就讲到这里了,如果你想了解更多关于Android 马赛克(Mosaics)效果的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我在 Mosaic Decisions 中使用数据流,并且使用 MySQL 编写器节点。我要写的结果集有一个字段 inserted-time .但我想跳过此列中的值,并希望使用为 DB 表中该列设置的
我正在使用镶嵌决策数据流功能从 Azure blob 读取文件,进行一些转换并将该数据写回 Azure。它工作正常,除了在我给出的输出文件路径中,它创建了一个文件夹,我可以看到许多文件的名称中带有一些
mosaic decision提供了哪些不同类型的参数?input、calculated、sql和global variables有什么区别? 最佳答案 Mosaic有两类参数: 1。系统参数 - 这
我发现的最好的马赛克代码你可以在这个页面看到: https://github.com/codebox/mosaic 但是,该代码在我的 Windows 计算机上运行不佳,而且我认为该代码对于它应该做的
我正在使用 vcd::mosaic 生成马赛克图。但是我给出的因素的文本很长(削减它们不是一种选择,并且在如此多的情况下,引入 \n 似乎令人生畏),因此文本中有重叠,我一直无法强制标签垂直于轴。 这
我正在尝试支持最初使用 GWT 2.4 和 GWT Mosaic v0.4.0 开发的旧版 Java Web 系统。我尝试升级 GWT 版本,并使用 GWT 2.5.0 成功编译项目,但是当我尝试使用
我有兴趣使用这个MosaicJS plugin 。这些说明看起来很简单,所以我尝试复制基本实现。 $('#myMosaic').Mosaic();
我必须在网页上编写一个大图片马赛克,我想知道编写它的最佳方法是什么,因此该解决方案的编程和以后维护/更改它不会很复杂。 这里是马赛克的设计,每张图片都可能会变,黑白和彩色。 我在考虑 3 种不同的方法
前几天看见开源项目效果好赞,看了下代码,实现大致就是在原界面之上覆盖一成自定义的view,获取到点击的那个view的内容(bitmap),然后在覆盖的那个自定义view的特定位置画出来,之后就是对这
我正在使用 R 3.2.2 并安装了 mosaic 包。然后,我使用了 fetchData 函数,如下所示: data<-fetchData(1,c("Web_scraping","Data_mini
我正在使用 Sonata Admin,并且有一个列表和马赛克 View 。如何默认选择马赛克 View ? 我不想隐藏 ListView ,只需默认选择马赛克 View 即可。 最佳答案 Admin
我在这个网络元素中遇到了与 CSS 相关的问题。该网站是用 PHP 编码的,但在这个例子中我只是发布了相关的 HTML。 我已经编译了我的 CSS(从 .SCSS 编译)并附上了整个 CSS 文件。
如何在鼠标悬停时将封面覆盖应用到马赛克元素:http://tympanus.net/Development/GridLoadingEffects/index.html 我试图达到的效果可以在这里看到:
Take a look at the images in this link 我正在使用相同的 Mosaic Flow 插件构建一个类似的页面,我的页面与上面的示例页面之间的唯一区别是我通过 AJAX
我创建了一个简单的基于 float 的横幅,带有这样的图 block : My code on jsfiddle , 但是我在每个图 block 中居中文本时遇到了一个大问题。我想让所有“示例文本”文
我有 4 个相同形状的方形阵列 array1 = 1*np.ones((10,10)) array2 = 2*np.ones((10,10)) array3 = 3*np.ones((10,10))
在新版本的 gmail 上,有一个很酷的 imageView,可以在其中显示多个联系人图像(链接 here 例如)。 例如,如果有人给我发了一封电子邮件,我只能看到他的图片: ####### #
好的,我正在使用 Mosaic (用于悬停文本等的 jQuery 插件)无论如何,我已经可以正常工作了,但现在我的问题是文本与我想要做的正确对齐。我试图让单词:“sale items”以非常小的空间出
我正在使用 Java 高级成像。我已经有了这些图 block ,想将所有图 block 放在一个 PlanarImage 中。下面的代码返回以下错误消息: 错误:一个工厂因操作“马赛克”而失败线程“m
我正在将Mosaic Decisions用于必须每天运行的特定数据管道。我有一个客户,其文件位置每天都会根据当前日期在blob 容器中发生变化。 例如,文件 sales.xlsx 的路径如下 dail
我是一名优秀的程序员,十分优秀!