本文实例讲述了AndroID编程实现仿QQ发表说说,上传照片及d出框效果。分享给大家供大家参考,具体如下:
代码很简单,主要就是几个动画而已,图标什么的就随便找了几个,效果图:
动画说明:
1.点击右上角按钮,菜单从顶部下拉d出,同时背景变暗;
2.再次点击右上角按钮,点击返回键,或者点击空白区域(也就是变暗的部分),菜单向上收回;
3.点击菜单上的按钮响应事件,同时菜单收回(效果同2)
重要说明:动画结束后必须clearanimation,否则隐藏状态的vIEw依然能响应点击事件
主体代码:
public class MainActivity extends Activity { //添加数据按钮 private ImageVIEw addDataIv; //下拉功能菜单 private linearLayout dropDownVIEw; private VIEw bgVIEw; //当前下拉菜单是否为显示状态 private boolean showItems = false; @OverrIDe protected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.activity_main); addDataIv = (ImageVIEw) findVIEwByID(R.ID.main_newData); dropDownVIEw = (linearLayout) findVIEwByID(R.ID.dropDownVIEw); bgVIEw = findVIEwByID(R.ID.main_bg); addDataIv.setonClick@R_404_6818@ener(new VIEw.OnClick@R_404_6818@ener() { @OverrIDe public voID onClick(VIEw v) { if (!showItems) { showVIEw(); } else { dismissVIEw(); } } }); //点击空白隐藏d出框 bgVIEw.setonClick@R_404_6818@ener(new VIEw.OnClick@R_404_6818@ener() { @OverrIDe public voID onClick(VIEw v) { if (showItems) { dismissVIEw(); } } }); //下拉功能菜单上按钮的点击事件 VIEw.OnClick@R_404_6818@ener l = new OnClickImpl(); findVIEwByID(R.ID.dropDown_item1).setonClick@R_404_6818@ener(l); findVIEwByID(R.ID.dropDown_item2).setonClick@R_404_6818@ener(l); findVIEwByID(R.ID.dropDown_item3).setonClick@R_404_6818@ener(l); findVIEwByID(R.ID.dropDown_item4).setonClick@R_404_6818@ener(l); } //显示下拉菜单 private voID showVIEw() { showItems = true; addDataIv.startAnimation(AnimationUtils.loadAnimation(MainActivity.this,R.anim.rotate_open)); dropDownVIEw.startAnimation(AnimationUtils.loadAnimation(this,R.anim.drop_down)); dropDownVIEw.setVisibility(VIEw.VISIBLE); bgVIEw.startAnimation(AnimationUtils.loadAnimation(MainActivity.this,R.anim.fade_dark)); bgVIEw.setVisibility(VIEw.VISIBLE); } //隐藏下拉菜单 private voID dismissVIEw() { showItems = false; addDataIv.startAnimation(AnimationUtils.loadAnimation(MainActivity.this,R.anim.rotate_close)); Animation dropUpAnim = AnimationUtils.loadAnimation(this,R.anim.drop_up); dropUpAnim.setAnimation@R_404_6818@ener(new Anim@R_404_6818@enerImpl(dropDownVIEw)); dropDownVIEw.startAnimation(dropUpAnim); dropDownVIEw.setVisibility(VIEw.INVISIBLE); Animation fadelightAnim = AnimationUtils.loadAnimation(MainActivity.this,R.anim.fade_light); fadelightAnim.setAnimation@R_404_6818@ener(new Anim@R_404_6818@enerImpl(bgVIEw)); bgVIEw.startAnimation(fadelightAnim); bgVIEw.setVisibility(VIEw.INVISIBLE); } //点击返回键时,如果下拉菜单是显示状态,则隐藏它 @OverrIDe public voID onBackpressed() { if (showItems) { dismissVIEw(); return; } super.onBackpressed(); } private class OnClickImpl implements VIEw.OnClick@R_404_6818@ener { @OverrIDe public voID onClick(VIEw v) { if (!showItems) { return; } int ID = v.getID(); switch (ID) { case R.ID.dropDown_item1: Toast.makeText(MainActivity.this,"item1 onClick",Toast.LENGTH_SHORT).show(); dismissVIEw(); break; case R.ID.dropDown_item2: Toast.makeText(MainActivity.this,"item2 onClick",Toast.LENGTH_SHORT).show(); dismissVIEw(); break; case R.ID.dropDown_item3: Toast.makeText(MainActivity.this,"item3 onClick",Toast.LENGTH_SHORT).show(); dismissVIEw(); break; case R.ID.dropDown_item4: Toast.makeText(MainActivity.this,"item4 onClick",Toast.LENGTH_SHORT).show(); dismissVIEw(); break; default: break; } } } //动画结束后必须clearanimation,否则隐藏状态的vIEw依然能响应点击事件 private class Anim@R_404_6818@enerImpl implements Animation.Animation@R_404_6818@ener { private VIEw vIEw; public Anim@R_404_6818@enerImpl(VIEw vIEw) { this.vIEw = vIEw; } @OverrIDe public voID onAnimationStart(Animation animation) { } @OverrIDe public voID onAnimationEnd(Animation animation) { vIEw.clearanimation(); } @OverrIDe public voID onAnimationRepeat(Animation animation) { } }}
完整实例代码点击此处本站下载。
更多关于AndroID相关内容感兴趣的读者可查看本站专题:《Android开发动画技巧汇总》、《Android编程之activity *** 作技巧总结》、《Android视图View技巧总结》、《Android布局layout技巧总结》、《Android开发入门与进阶教程》、《Android资源 *** 作技巧汇总》及《Android控件用法总结》
希望本文所述对大家AndroID程序设计有所帮助。
总结以上是内存溢出为你收集整理的Android编程实现仿QQ发表说说,上传照片及d出框效果【附demo源码下载】全部内容,希望文章能够帮你解决Android编程实现仿QQ发表说说,上传照片及d出框效果【附demo源码下载】所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)