我还没有找到任何关于如何在应用 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;
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)
我做什么请建议我......
动画仅移动像素。您可以添加一个侦听器来检查动画的结束,并实际移动小部件/按钮或对小部件/按钮进行子类化(或者其内部的布局可能更容易取决于动画)并更改触摸检查(ontouch)。
或者在动画结束时,您可以隐藏原始视图并显示“新”视图。这在布局 xml 中也更容易理解(您可以将它们设置为隐藏)。取决于动画细节。
| 归档时间: |
|
| 查看次数: |
2043 次 |
| 最近记录: |