2013-04-14 24 views
0

我曾经做过很多Flash Actionscript,现在我正在进入Android。在Android API中是否有与Actionscript中的duplicateMovieClip()类似的东西?我敢肯定,可能有一种方法来编写这样的方法,但我想知道是否有任何现有的快捷方式。Android API是否有类似Flash的重复动画片段?

例如,假设我在屏幕上有一个ImageView,TextView或其他类型的视图对象,并且我想要一个按钮来点击它将在屏幕上创建一些对象的副本。

回答

1

如果你不介意我的问题,为什么你需要类似duplicateMovieClip()

要回答这个问题,Android没有AS2 duplicateMovieClip()的概念。就像在AS3(也没有duplicateMovieClip())一样,你必须实现你自己的克隆方法。 Java确实有一个未实现的'.clone()'方法作为每个Java对象的一部分,所以如果你想克隆一个特定的View,你可能可以通过覆盖克隆方法来实现你的克隆。 覆盖克隆方法。

我想你可能最终会做的事情是做更类似于从库中实例化的东西,通过在xml中制作小视图布局并使用Inflater工具对它们进行膨胀。

View result = null; 

// where pContext is a context object, either supplied by the application 
// or just by the current Activity (if available) 

LayoutInflater inflater = (LayoutInflater) pContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

// where id is the layout id such as R.layout.myclonableview. 
// where pRoot is the parent container for the new result. 
// where pAttachToRoot is whether to immediately inflate the new view into the root. 
result = inflater.inflate(id, pRoot, pAttachToRoot); 

// Now "clone" your old view by copying relevant fields from the old one to the 
// one stored in result 
+0

是的,它已经有一段时间,因为我用闪光灯,所以我并不感到惊讶,我问的是折旧方法。好吧,这听起来像上面的代码是动态地创建一些从XML代码的视图对象膨胀。视图对象已经在屏幕上实例化并不重要,所以这会创建一个有点独立的副本,我可以不同的颜色和不同的比例缩放等等? – jdods

+0

没错,它是一个全新的视图实例,您可以单独设置其属性。 R.layout.foo引用的.xml文件是预定义的布局/视图,可以将其视为与库中的MovieClip类似。也就是说,可能很高兴知道*为什么*你想这样做,因为你的问题可能更为普遍,并且可能还有一些难题需要解释。 – scriptocalypse

+0

除了尝试学习Android编码外,没有任何特别的原因。我可以对这样的图像进行成像,例如,在玩家点击按钮以获得新球以发射目标的游戏中。但是也许有更好的方式去做类似的事情,而不是膨胀一些ball.xml或ball.png的新实例。 – jdods

相关问题