全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Android编程实现仿QQ发表说说,上传照片及弹出框效果【附demo源码下载】

本文实例讲述了Android编程实现仿QQ发表说说,上传照片及弹出框效果。分享给大家供大家参考,具体如下:

代码很简单,主要就是几个动画而已,图标什么的就随便找了几个,效果图:

 

动画说明:

1.点击右上角按钮,菜单从顶部下拉弹出,同时背景变暗;
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.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
        if (!showItems) {
          showView();
        } else {
          dismissView();
        }
      }
    });
    //点击空白隐藏弹出框
    bgView.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
        if (showItems) {
          dismissView();
        }
      }
    });
    //下拉功能菜单上按钮的点击事件
    View.OnClickListener l = new OnClickImpl();
    findViewById(R.id.dropDown_item1).setOnClickListener(l);
    findViewById(R.id.dropDown_item2).setOnClickListener(l);
    findViewById(R.id.dropDown_item3).setOnClickListener(l);
    findViewById(R.id.dropDown_item4).setOnClickListener(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.setAnimationListener(new AnimListenerImpl(dropDownView));
    dropDownView.startAnimation(dropUpAnim);
    dropDownView.setVisibility(View.INVISIBLE);
    Animation fadeLightAnim = AnimationUtils.loadAnimation(MainActivity.this, R.anim.fade_light);
    fadeLightAnim.setAnimationListener(new AnimListenerImpl(bgView));
    bgView.startAnimation(fadeLightAnim);
    bgView.setVisibility(View.INVISIBLE);
  }
  //点击返回键时,如果下拉菜单是显示状态,则隐藏它
  @Override
  public void onBackPressed() {
    if (showItems) {
      dismissView();
      return;
    }
    super.onBackPressed();
  }
  private class OnClickImpl implements View.OnClickListener {
    @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 AnimListenerImpl implements Animation.AnimationListener {
    private View view;
    public AnimListenerImpl(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  # 发表说说  # 上传照片  # 弹出框  # Android 多种简单的弹出框样式设置代码  # Android实现可输入数据的弹出框  # Android使用Dialog风格弹出框的Activity  # react-native 封装选择弹出框示例(试用ios&android)  # Android中自定义PopupWindow实现弹出框并带有动画效果  # Android 仿微信朋友圈点赞和评论弹出框功能  # android自定义弹出框样式的实现方法  # 高仿IOS的Android弹出框  # Android仿微信进度弹出框的实现方法  # Android自定义弹出框的方法  # 弹出  # 几个  # 进阶  # 操作技巧  # 结束后  # 变暗  # 相关内容  # 感兴趣  # 给大家  # 很简单  # 找了  # 点击此处  # 更多关于  # 所述  # 程序设计  # 讲述了  # addDataIv  # ImageView  # private 


相关文章: 怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?  如何在腾讯云服务器快速搭建个人网站?  如何通过VPS建站实现广告与增值服务盈利?  如何登录建站主机?访问步骤全解析  5种Android数据存储方式汇总  如何快速登录WAP自助建站平台?  建站之星与建站宝盒如何选择最佳方案?  linux top下的 minerd 木马清除方法  C++中引用和指针有什么区别?(代码说明)  高防网站服务器:DDoS防御与BGP线路的AI智能防护方案  如何快速搭建虚拟主机网站?新手必看指南  ,购物网站怎么盈利呢?  招商网站制作流程,网站招商广告语?  C++用Dijkstra(迪杰斯特拉)算法求最短路径  建站主机选哪种环境更利于SEO优化?  如何续费美橙建站之星域名及服务?  阿里云高弹*务器配置方案|支持分布式架构与多节点部署  如何通过IIS搭建网站并配置访问权限?  建站之星安装步骤有哪些常见问题?  深圳网站制作费用多少钱,读秀,深圳文献港这样的网站很多只提供网上试读,但有些人只要提供试读的文章就能全篇下载,这个是怎么弄的?  如何在Windows 2008云服务器安全搭建网站?  Android自定义控件实现温度旋转按钮效果  电脑免费海报制作网站推荐,招聘海报哪个网站多?  如何在云主机快速搭建网站站点?  制作网站的基本流程,设计网站的软件是什么?  孙琪峥织梦建站教程如何优化数据库安全?  攀枝花网站建设,攀枝花营业执照网上怎么年审?  制作网站的软件免费下载,免费制作app哪个平台好?  Python如何创建带属性的XML节点  网站制作公司排行榜,四大门户网站排名?  如何在香港服务器上快速搭建免备案网站?  专业制作网站的公司哪家好,建立一个公司网站的费用.有哪些部分,分别要多少钱?  Dapper的Execute方法的返回值是什么意思 Dapper Execute返回值详解  如何用AWS免费套餐快速搭建高效网站?  如何用免费手机建站系统零基础打造专业网站?  小建面朝正北,A点实际方位是否存在偏差?  大学网站设计制作软件有哪些,如何将网站制作成自己app?  杭州银行网站设计制作流程,杭州银行怎么开通认证方式?  Java解压缩zip - 解压缩多个文件或文件夹实例  车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?  网站制作培训多少钱一个月,网站优化seo培训课程有哪些?  如何通过老薛主机一键快速建站?  建站主机类型有哪些?如何正确选型  建站之星安装路径如何正确选择及配置?  网站制作中优化长尾关键字挖掘的技巧,建一个视频网站需要多少钱?  最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?  西安专业网站制作公司有哪些,陕西省建行官方网站?  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  ppt制作免费网站有哪些,ppt模板免费下载网站?  如何在阿里云通过域名搭建网站? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。