|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
打开.xib的文件打开的就是IBIB和代码交互用的是IBActionIBOutlet这些标记这些标记追踪到他们的定义其实对编译器来说什么都不表示在之前的文章中,我们先容了含混图象办法。我们提到要将blur办法放在结构阶段。如许能确保只要在结构变更时含混操纵才会被挪用,而不是在onDraw()中挪用。为何不克不及在onDraw()中挪用?这篇文章会从测试的角度来注释这一成绩。
<br>
我们之条件到过一个十分有效的测试类:TimingLogger类,可用于功能测试并发明瓶颈。日记在debug中十分有效,可是因为必要将了局输入为字符串,而且必要一些I/O操纵来输入了局会直接影响测试了局,所不太合适功能调优。TimingLogger会在测试代码段实行之前创立一个TimingLogger对象,而且在代码实行过程当中挪用TimingLogger类的addSplit()办法来增加测试断点。addSplit()办法长短常轻量级的,而且不会在代码实行中输入了局。今世码实行以后,我们能够用dumpToLog()办法输入测试了局。如许一来,只会在代码运转的过程当中利用addSplit()办法增加测试断点,而不会往实行创立Timinglogger对象和输入测试了局这两个操纵,由此进步了功能测试的正确性。
当我们增加TimingLogger的特征时,代码将以下:
<p>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
36
37
38
39
40
41
42
43
44
45
46
47
48
privatestaticfinalStringTAG="Blurring";
privatevoidblur(Bitmapbkg,Viewview,floatradius){
TimingLoggertl=newTimingLogger(TAG,"blur");
Bitmapoverlay=Bitmap.createBitmap(
view.getMeasuredWidth(),
view.getMeasuredHeight(),
Bitmap.Config.ARGB_8888);
tl.addSplit("Bitmap.createBitmap()");
Canvascanvas=newCanvas(overlay);
tl.addSplit("newCanvas()");
canvas.drawBitmap(bkg,-view.getLeft(),
-view.getTop(),null);
tl.addSplit("canvas.drawBitmap()");
RenderScriptrs=RenderScript.create(this);
tl.addSplit("RenderScript.create()");
AllocationoverlayAlloc=Allocation.createFromBitmap(
rs,overlay);
tl.addSplit("Allocation.createFromBitmap()");
ScriptIntrinsicBlurblur=ScriptIntrinsicBlur.create(
rs,overlayAlloc.getElement());
tl.addSplit("ScriptIntrinsicBlur.create()");
blur.setInput(overlayAlloc);
tl.addSplit("blur.setInput()");
blur.setRadius(radius);
tl.addSplit("blur.setRadius()");
blur.forEach(overlayAlloc);
tl.addSplit("blur.forEach()");
overlayAlloc.copyTo(overlay);
tl.addSplit("overlayAlloc.copyTo()");
view.setBackground(newBitmapDrawable(
getResources(),overlay));
<p> |
|