在应用了 ScaleAnimation 后如何调整 Android 视图的点击/触摸区域扩大?

5
我还没有找到关于如何在应用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>

请建议我做什么...

你找到了答案并私藏了吗?你应该选择正确的答案或在找到答案后告诉我们 ;) - Silviu St
@silviust 同意,我也遇到了这个问题。 - Bish25
1个回答

1

动画只是移动像素。您可以添加侦听器以检查动画的结束并实际移动小部件/按钮或子类化小部件/按钮(或包含它的布局可能更容易,具体取决于动画),并更改触摸检查(ontouch)。

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


谢谢Pulsar的评论,我一定会尝试并尽快让您知道。 - Shailendra
1
面对类似的问题,想知道你们最终采用了什么解决方案。 - slott

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接