Android:仿QQ 发表说说/上传照片 弹出框

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

    

动画说明:

1.点击右上角按钮,菜单从顶部下拉弹出,同时背景变暗;

2.再次点击右上角按钮,点击返回键,或者点击空白区域(也就是变暗的部分),菜单向上收回;

3.点击菜单上的按钮响应事件,同时菜单收回(效果同2)

主体代码:

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() {
        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);

        showItems = true;
    }

    //隐藏下拉菜单
    private void dismissView() {
        addDataIv.startAnimation(AnimationUtils.loadAnimation(MainActivity.this, R.anim.rotate_close));

        dropDownView.startAnimation(AnimationUtils.loadAnimation(this, R.anim.drop_up));
        dropDownView.setVisibility(View.INVISIBLE);

        bgView.startAnimation(AnimationUtils.loadAnimation(MainActivity.this, R.anim.fade_light));
        bgView.setVisibility(View.INVISIBLE);

        showItems = false;
    }

    //点击返回键时,如果下拉菜单是显示状态,则隐藏它
    @Override
    public void onBackPressed() {
        if (showItems) {
            dismissView();
            return;
        }

        super.onBackPressed();
    }

    private class OnClickImpl implements View.OnClickListener {
        @Override
        public void onClick(View v) {
            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;
            }
        }
    }
}

====== ======

源码下载:http://download.csdn.net/detail/books1958/8702355

时间: 2024-10-06 19:38:13

Android:仿QQ 发表说说/上传照片 弹出框的相关文章

弹出层罩子html(上传照片弹出请等待后面的代码不能修改)

一,效果 二,素材 三,代码 1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0 ,user-scalable=no"> 6 <title>自适应居中加载点击遮罩效果

C#MVC和cropper.js实现剪裁图片ajax上传的弹出层

 首先使用cropper.js插件,能够将剪裁后的图片返回为base64编码,后台根据base64编码解析保存图片. jQuery.cropper: 是一款使用简单且功能强大的图片剪裁jquery插件.该图片剪裁插件支持图片放大缩小,支持图片旋转,支持触摸屏设备,支持canvas,并且支持跨浏览器使用 网站:http://fengyuanchen.github.io/cropper/ 可以自己搜索中文API 前台代码: @{ Layout = null; } <!DOCTYPE html> &

edusoho上传视频弹出abort之解决方案

错误描述:edusoho上传如avi.mp4等容量大的图片(如100m以上或500m等)弹出abort提示框 原因:是因为web服务器apache默认上传文件有限制导致的 解决办法如下: (1)首先修改改php.ini配置文件sudo vim /etc/php/7.0/fpm/php.ini 并修改如下内容: post_max_size = 1024M memory_limit = 1024M upload_max_filesize = 1024M (2)不仅仅需要修改这个,还需修改vim /e

Android模仿QQ空间图片上传——原理

MainActivity.class package com.example.imagedemotext; import java.io.ByteArrayOutputStream; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.InputStream; import java.util.ArrayList; import java.util.List; import an

Android使用XUtils框架上传照片(一张或多张)和文字,服务器接收照片和文字(无乱码)

Android上传图片,这里我使用了现在比较流行的XUtils框架,该框架可以实现文件上传.文件下载.图片缓存等等,有待研究. 下面是Android段上传的代码: xUtils.jar下载 String uploadHost="http://192.168.1.100:8080/ReceiveImgFromAndroid/ReceiveImgServlet"; //服务器接收地址 RequestParams params=new RequestParams(); params.addB

Android 仿QQ浏览器WebView,滑动隐藏显示ActionBar效果

Android 仿QQ浏览器,滑动隐藏显示ActionBar效果. 往上推,是一个ScrollView会将,actionbar以及内容往上推,当actionbar消失后,将滚动Webview的内容. 此效果是基于QuickReturnHeader源码,修改而来的,代码也不多,实现方法比较简单. 直接上demo:http://download.csdn.net/detail/xufeifandj/8388493 直接看效果图:

Django项目:CRM(客户关系管理系统)--61--51PerfectCRM实现CRM客户报名流程学生合同上传照片

1 # sales_views.py 2 # --------47PerfectCRM实现CRM客户报名流程-------- 3 from django.db import IntegrityError #主动捕捉错误信息 4 from django.shortcuts import render #页面返回 5 from crm import models #数据库 6 from bpm.bpm_auxiliary import bpm_forms #自定制 forms 7 8 # -----

上传照片

//上传照片function action_upload(){ //获取上传文件的文件信息 $photoname = $_FILES['photo']['name']; $type = $_FILES['photo']['type']; $tmp_name = $_FILES['photo']['tmp_name']; $size = $_FILES['photo']['size']; $error = $_FILES['photo']['error']; $maxSize = 20971520

Iphone H5上传照片被旋转

最近做项目发现在Iphone下,我们上传图片都会被翻转,最后查阅资料发现,的确是IOS的问题 不说过程,直接解决方法 iOS下,html方式使用<input type="file">上传图片,图片会被旋转.遇到这个问题js是无法解决的,html也没有相应的解决方案.只能放到后台去处理,将旋转的图片再旋转回来.iOS拍摄的图片提供了EXIF信息,Orientation值为6即顺时针90度,有了这个信息我们只需要逆时针旋转90度即可. 伪代码  //下面是php的伪代码 $ex