2012-06-21 83 views
0

我想显示一些可点击的对象。所以它看起来更容易使用按钮(具有onClick函数),但有什么办法让按钮弹起像一个球,仍然可点击?Android上的动画或移动按钮

这是我如何构造我的按钮:(也许我可以用一些方法来操纵垫衬?)

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
         WindowManager.LayoutParams.FLAG_FULLSCREEN); 

    txt = new TextView(this); 
    txt.setText("Moveable Words"); 

    buton = new Button(this); 
    buton.setText("Moveable Button"); 

    ll = new LinearLayout(this); 
    ll.setOrientation(LinearLayout.VERTICAL); 

    LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams( 
             LinearLayout.LayoutParams.WRAP_CONTENT, 
             LinearLayout.LayoutParams.WRAP_CONTENT); 

    layoutParams.weight = 1.0f; 
    layoutParams.setMargins(640, 375, 0, 0); 

    LinearLayout.LayoutParams layoutParams2 = new LinearLayout.LayoutParams( 
             LinearLayout.LayoutParams.WRAP_CONTENT, 
             LinearLayout.LayoutParams.WRAP_CONTENT); 
    layoutParams2.weight = 1.0f; 
    layoutParams2.setMargins(240, 100, 0, 0); 

    ll.addView(buton, layoutParams); 
    ll.addView(txt, layoutParams2); 
    ViewGroup.LayoutParams lp = new ViewGroup.LayoutParams( 
              ViewGroup.LayoutParams.WRAP_CONTENT, 
              ViewGroup.LayoutParams.WRAP_CONTENT); 
    setContentView(ll, lp); 
} 

回答

0

你可以使用绝对定位来达到你想要的效果,但它已被弃用,因此不会是未来兼容。 (X,Y)坐标

http://developer.android.com/reference/android/widget/AbsoluteLayout.html

一个AbsoluteLayout的子视图可被定位用。这将允许你想要的效果。我再次强调,你真的不应该这样做。你最好想使用画布或更好。

+0

所以我想我应该创建一些对象类并实现显示(使用画布)和点击()函数。有没有办法将onClickListener分配给该对象。因为很容易定义什么是点击(可能使用触摸像素),但我不知道如何聆听点击。 (只要应用程序运行,检查所有对象以确定哪个对象已被点击? - 声音混乱。) – Srht

+0

在画布中,您将听取画布上的点击,然后使用点击的坐标来确定它是否符合点击在您绘制的任何对象上。如果你使用OOP,这不应该是混乱的,但它会是更多的代码,因为你正在做手动,而不是使用Android Views的快捷方法。积极的一面是性能应该更好。 –