我没有找到任何关于如何在应用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>
我做的请建议我......
答案 0 :(得分:1)
动画仅移动像素。您可以添加一个侦听器来检查动画的结尾,并实际移动widdget /按钮或子窗口小部件/按钮(或者它在migth中的布局更容易在动画上展开)并更改触摸检查(ontouch)。
或者在动画结束时,您可以隐藏原始视图并显示“新”视图。在布局xml中也更容易理解(你可以将它们设置为隐藏在那里)。取决于动画细节。