如何在android中应用ScaleAnimation后缩放视图的点击/触摸区域?

时间:2011-10-21 07:30:20

标签: java android

我没有找到任何关于如何在应用ScaleAnimation后缩放视图的触摸区域的解决方案,这个动画确实改变了该视图的比例而不是该视图的触摸区域。触摸区域保持不变。这是我的示例代码:

package com.xyz;

public class XyzActivity extends Activity {
int zoomLevel = 1;
int zoomNext = 2;
Button btn = null;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    btn = (Button)findViewById(R.id.button1);
    btn.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            AnimationSet set = new AnimationSet(false);
            ScaleAnimation anim = new ScaleAnimation(zoomLevel, zoomNext, zoomLevel, zoomNext);
            set.addAnimation(anim);
            set.setDuration(0);
            set.setFillEnabled(true);
            set.setFillAfter(true);
            v.startAnimation(set);
            zoomLevel += zoomNext;
            zoomNext = zoomLevel - zoomNext;
            zoomLevel-=zoomNext;
        }
    });
   }

  }

而xml是:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
    <Button android:text="Button" android:id="@+id/button1" 
    android:layout_width="wrap_content" android:layout_height="wrap_content"/>
</RelativeLayout>

我做的请建议我......

1 个答案:

答案 0 :(得分:1)

动画仅移动像素。您可以添加一个侦听器来检查动画的结尾,并实际移动widdget /按钮或子窗口小部件/按钮(或者它在migth中的布局更容易在动画上展开)并更改触摸检查(ontouch)。

或者在动画结束时,您可以隐藏原始视图并显示“新”视图。在布局xml中也更容易理解(你可以将它们设置为隐藏在那里)。取决于动画细节。