曾无好事来相访,赖尔高文一起予。这篇文章主要讲述如何在android中制作这样的动画?相关的知识,希望能为你提供帮助。
在我的android应用程序中,视图如下图所示:
现在,这里D是小部分,任何视图或可能是按钮。我想要的是,如果用户点击那个“D”部分,以不同颜色显示的视图应该从左到右平移,只有“D”部分出现在屏幕的最右边。如果用户再次单击该“D”部分,则视图将从右向左翻译,并且如上图所示。
如何制作?
答案此视图称为滑动抽屉。
您可以参考this链接进行滑动抽屉控制。
还有一些链接
Link1
Link2
编辑
而this是Sliding-drawer演示示例的链接
在这个演示示例中有一个布局名称"main.xml"
,其中有一个变量my:direction="topToBottom"
,这个描述从你想要打开滑动抽屉的地方
在你的情况下,你想从左向右滑动所以你的变量将是我的:direction =“left To Right”
另一答案假设D是一个i??mageview,它在x方向上从0移动到200。见下面的代码。
public class DActivity extends Activity {
ImageView D;
int x=0,y=0;
int a=0;
int newx=0;
TranslateAnimation TA;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
D=(ImageView)findViewById(R.id.d);
RelativeLayout RL=(RelativeLayout)findViewById(R.id.rl);
D.setOnTouchListener(new OnTouchListener() {@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
x=v.getLeft();
y=v.getTop();
Toast.makeText(getApplicationContext(), "X="+x+"y="+y, Toast.LENGTH_LONG).show();
if(x==0){
D.setEnabled(false);
a=200;
newx=200;
Anim();
}
if(x==200){
D.setEnabled(false);
a=-200;
newx=0;
Anim();
}
return true;
}
});
}
public void Anim(){
TranslateAnimation TAnimation=new TranslateAnimation(0, a, 0,0);
TAnimation.setInterpolator(new LinearInterpolator());
TAnimation.setDuration(5000);
TAnimation.setFillAfter(false);
TAnimation.setFillEnabled(true);
TAnimation.setFillBefore(true);
D.startAnimation(TAnimation);
TAnimation.setAnimationListener(new AnimationListener() {public void onAnimationStart(Animation animation) { }public void onAnimationRepeat(Animation animation) {}public void onAnimationEnd(Animation animation) {
LayoutParams param=new RelativeLayout.LayoutParams( LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
param.setMargins(newx, y, 0, 0);
D.setLayoutParams(param);
D.setEnabled(true);
}
});
}
【如何在android中制作这样的动画()】}
推荐阅读
- 从Android模拟器ping主机
- SQLite数据库从Android模拟器中消失了
- 如何让Android模拟器显示软键盘()
- Android Studio不会将x86_64显示为任何虚拟设备的选项
- 应用程序冻结在白色屏幕上,反应原生android apk
- Android模拟器不会关闭
- 获得此异常会强制Android应用程序在启动时崩溃
- create react native app expo无法连接在同一台计算机上的模拟器上运行
- (如何)Android虚拟设备可以使用本地计算机的互联网吗()