安卓开发:模仿微博中间加号按钮弹出发布页面
来源:互联网 发布:什么是大数据新闻 编辑:程序博客网 时间:2024/04/29 18:44
以下代码都是直接从项目里摘出来的,比较糙,代码写得也比较简单,相信很多人看一眼就知道怎么写了,凑合看吧,反正满足我们项目的需求了。
之前也写过,用两个popup来回切换实现的,在有的手机上老是有问题,所以这次就重新写了一个,效果比之前的好一点,都是最简单的代码,也不回存在什么兼容问题。
下面开始上代码:
首先定义好要显示的动画效果,下面有6个,一共用到了5个,最后一个是消失时候用的动画,可用可不用
/** * 从控件的底部移动到控件所在位置 */ public static TranslateAnimation moveToViewLocation() { TranslateAnimation mHiddenAction = new TranslateAnimation(Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, 1.0f, Animation.RELATIVE_TO_SELF, 0.0f); mHiddenAction.setDuration(300); return mHiddenAction; } /** * 从控件所在位置移动到左侧 */ public static TranslateAnimation moveToLeftHide() { TranslateAnimation mHiddenAction = new TranslateAnimation(Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, -1.0f, Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, 0.0f); mHiddenAction.setDuration(300); return mHiddenAction; } /** * 从右侧移动到控件所在位置 */ public static TranslateAnimation moveToLeftShow() { TranslateAnimation mHiddenAction = new TranslateAnimation(Animation.RELATIVE_TO_SELF, 1.0f, Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, 0.0f); mHiddenAction.setDuration(300); return mHiddenAction; } /** * 从控件所在位置移动到右侧 */ public static TranslateAnimation moveToRightHide() { TranslateAnimation mHiddenAction = new TranslateAnimation(Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, 1.0f, Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, 0.0f); mHiddenAction.setDuration(300); return mHiddenAction; } /** * 从左侧移动到控件所在位置 */ public static TranslateAnimation moveToRightShow() { TranslateAnimation mHiddenAction = new TranslateAnimation(Animation.RELATIVE_TO_SELF, -1.0f, Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, 0.0f); mHiddenAction.setDuration(300); return mHiddenAction; } /** * 从控件所在位置移动到控件的底部 */ public static TranslateAnimation moveToViewBottom() { TranslateAnimation mHiddenAction = new TranslateAnimation(Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, 1.0f); mHiddenAction.setDuration(300); return mHiddenAction; }
然后就是各个点击事件的判断了,点不同按钮跳转不同的页面
@Override public void onClick(View v) { switch (v.getId()) { case R.id.send_one_close_img: finish(); break; case R.id.send_two_close_img: finish(); break; case R.id.send_two_back_img: send_tab_two.setVisibility(View.GONE); send_tab_two.setAnimation(moveToRightHide()); send_tab_one.setVisibility(View.VISIBLE); send_tab_one.setAnimation(moveToRightShow()); break; case R.id.send_one_dongtai: Toast.makeText(context, "发布动态", Toast.LENGTH_SHORT).show(); finish(); break; case R.id.send_one_zijin: Toast.makeText(context, "发布资金", Toast.LENGTH_SHORT).show(); finish(); break; case R.id.send_one_shebei: send_two_qiu_img.setImageResource(R.mipmap.pic_fabu_shebei_zl); send_two_chu_img.setImageResource(R.mipmap.pic_fabu_shebei_cz); send_two_qiu_tv.setText("设备求租"); send_two_chu_tv.setText("设备出租"); send_tab_one.setVisibility(View.GONE); send_tab_one.setAnimation(moveToLeftHide()); send_tab_two.setVisibility(View.VISIBLE); send_tab_two.setAnimation(moveToLeftShow()); send_two_qiu.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Toast.makeText(ActivitySendSelect.this, "设备出租", Toast.LENGTH_SHORT).show(); finish(); } }); send_two_chu.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Toast.makeText(ActivitySendSelect.this, "设备求租", Toast.LENGTH_SHORT).show(); finish(); } }); break; case R.id.send_one_rencai: send_two_qiu_img.setImageResource(R.mipmap.pic_fabu_rencai_zm); send_two_chu_img.setImageResource(R.mipmap.pic_fabu_rencai_qz); send_two_qiu_tv.setText("人才招募"); send_two_chu_tv.setText("人才求职"); send_tab_one.setVisibility(View.GONE); send_tab_one.setAnimation(moveToLeftHide()); send_tab_two.setVisibility(View.VISIBLE); send_tab_two.setAnimation(moveToLeftShow()); send_two_qiu.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Toast.makeText(ActivitySendSelect.this, "人才招募", Toast.LENGTH_SHORT).show(); finish(); } }); send_two_chu.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Toast.makeText(ActivitySendSelect.this, "人才求职", Toast.LENGTH_SHORT).show(); finish(); } }); break; case R.id.send_one_changdi: send_two_qiu_img.setImageResource(R.mipmap.pic_fabu_changdi_zl); send_two_chu_img.setImageResource(R.mipmap.pic_fabu_changdi_cz); send_two_qiu_tv.setText("场地求租"); send_two_chu_tv.setText("场地出租"); send_tab_one.setVisibility(View.GONE); send_tab_one.setAnimation(moveToLeftHide()); send_tab_two.setVisibility(View.VISIBLE); send_tab_two.setAnimation(moveToLeftShow()); send_two_qiu.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Toast.makeText(ActivitySendSelect.this, "场地求租", Toast.LENGTH_SHORT).show(); finish(); } }); send_two_chu.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Toast.makeText(ActivitySendSelect.this, "场地出租", Toast.LENGTH_SHORT).show(); finish(); } }); break; case R.id.send_one_juben: send_two_qiu_img.setImageResource(R.mipmap.pic_fabu_juben_zj); send_two_chu_img.setImageResource(R.mipmap.pic_fabu_juben_cs); send_two_qiu_tv.setText("剧本征集"); send_two_chu_tv.setText("剧本出售"); send_tab_one.setVisibility(View.GONE); send_tab_one.setAnimation(moveToLeftHide()); send_tab_two.setVisibility(View.VISIBLE); send_tab_two.setAnimation(moveToLeftShow()); send_two_qiu.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Toast.makeText(ActivitySendSelect.this, "剧本征集", Toast.LENGTH_SHORT).show(); finish(); } }); send_two_chu.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Toast.makeText(ActivitySendSelect.this, "剧本出售", Toast.LENGTH_SHORT).show(); finish(); } }); break; default: break; } }
上面是点击事件的判断,中间的
send_tab_one.setVisibility(View.GONE); send_tab_one.setAnimation(moveToLeftHide()); send_tab_two.setVisibility(View.VISIBLE); send_tab_two.setAnimation(moveToLeftShow());
这些无非就是控制不同控件的显示隐藏,添加不同的动画而已
最后,附上布局文件
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/white" android:clipToPadding="true" android:fitsSystemWindows="true"> <ImageView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="80dp" android:layout_marginRight="80dp" android:layout_marginTop="34dp" android:src="@mipmap/pic_fabu_top" /> <TableLayout android:id="@+id/send_tab_one" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_marginLeft="20dp" android:layout_marginRight="20dp" android:visibility="gone"> <TableRow> <LinearLayout android:id="@+id/send_one_dongtai" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:background="@drawable/tm_selector_btn_anxia" android:gravity="center_horizontal" android:orientation="vertical" android:paddingBottom="6dp" android:paddingTop="6dp"> <ImageView android:layout_width="64dp" android:layout_height="64dp" android:src="@mipmap/pic_fabu_dongtai" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="6dp" android:text="动态" android:textSize="14dp" /> </LinearLayout> <LinearLayout android:id="@+id/send_one_zijin" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:background="@drawable/tm_selector_btn_anxia" android:gravity="center_horizontal" android:orientation="vertical" android:paddingBottom="6dp" android:paddingTop="6dp"> <ImageView android:layout_width="64dp" android:layout_height="64dp" android:src="@mipmap/pic_fabu_zijin" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="6dp" android:text="资金" android:textSize="14dp" /> </LinearLayout> <LinearLayout android:id="@+id/send_one_shebei" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:background="@drawable/tm_selector_btn_anxia" android:gravity="center_horizontal" android:orientation="vertical" android:paddingBottom="6dp" android:paddingTop="6dp"> <ImageView android:layout_width="64dp" android:layout_height="64dp" android:src="@mipmap/pic_fabu_shebei" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="6dp" android:text="设备" android:textSize="14dp" /> </LinearLayout> </TableRow> <TableRow> <LinearLayout android:id="@+id/send_one_rencai" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:background="@drawable/tm_selector_btn_anxia" android:gravity="center_horizontal" android:orientation="vertical" android:paddingBottom="6dp" android:paddingTop="6dp"> <ImageView android:layout_width="64dp" android:layout_height="64dp" android:src="@mipmap/pic_fabu_rencai" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="6dp" android:text="人才" android:textSize="14dp" /> </LinearLayout> <LinearLayout android:id="@+id/send_one_changdi" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:background="@drawable/tm_selector_btn_anxia" android:gravity="center_horizontal" android:orientation="vertical" android:paddingBottom="6dp" android:paddingTop="6dp"> <ImageView android:layout_width="64dp" android:layout_height="64dp" android:src="@mipmap/pic_fabu_changdi" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="6dp" android:text="场地" android:textSize="14dp" /> </LinearLayout> <LinearLayout android:id="@+id/send_one_juben" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:background="@drawable/tm_selector_btn_anxia" android:gravity="center_horizontal" android:orientation="vertical" android:paddingBottom="6dp" android:paddingTop="6dp"> <ImageView android:layout_width="64dp" android:layout_height="64dp" android:src="@mipmap/pic_fabu_juben" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="6dp" android:text="剧本" android:textSize="14dp" /> </LinearLayout> </TableRow> <ImageView android:id="@+id/send_one_close_img" android:layout_width="match_parent" android:layout_height="46dp" android:layout_marginBottom="10dp" android:background="@drawable/tm_selector_btn_anxia" android:src="@mipmap/pic_fabuquxiao" /> </TableLayout> <TableLayout android:id="@+id/send_tab_two" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_marginLeft="20dp" android:layout_marginRight="20dp" android:visibility="gone"> <TableRow> <LinearLayout android:id="@+id/send_two_qiu" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:background="@drawable/tm_selector_btn_anxia" android:gravity="center_horizontal" android:orientation="vertical" android:paddingBottom="6dp" android:paddingTop="6dp"> <ImageView android:id="@+id/send_two_qiu_img" android:layout_width="64dp" android:layout_height="64dp" /> <TextView android:id="@+id/send_two_qiu_tv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="6dp" android:textSize="14dp" /> </LinearLayout> <LinearLayout android:id="@+id/send_two_chu" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:background="@drawable/tm_selector_btn_anxia" android:gravity="center_horizontal" android:orientation="vertical" android:paddingBottom="6dp" android:paddingTop="6dp"> <ImageView android:id="@+id/send_two_chu_img" android:layout_width="64dp" android:layout_height="64dp" /> <TextView android:id="@+id/send_two_chu_tv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="6dp" android:textSize="14dp" /> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center_horizontal" android:orientation="vertical" android:paddingBottom="6dp" android:paddingTop="6dp"> <ImageView android:layout_width="64dp" android:layout_height="64dp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="6dp" android:textSize="14dp" /> </LinearLayout> </TableRow> <LinearLayout android:id="@+id/send_two_null" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_horizontal" android:orientation="vertical" android:paddingBottom="6dp" android:paddingTop="6dp"> <ImageView android:layout_width="64dp" android:layout_height="64dp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="6dp" android:textSize="14dp" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="46dp" android:layout_marginBottom="10dp" android:orientation="horizontal"> <ImageView android:id="@+id/send_two_back_img" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:background="@drawable/tm_selector_btn_anxia" android:src="@mipmap/pic_fabufanhui" /> <TextView android:layout_width="1px" android:layout_height="match_parent" android:layout_marginBottom="10dp" android:layout_marginTop="10dp" android:background="#c8c8c8" /> <ImageView android:id="@+id/send_two_close_img" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:background="@drawable/tm_selector_btn_anxia" android:src="@mipmap/pic_fabuquxiao" /> </LinearLayout> </TableLayout></RelativeLayout>
后续会补上Demo,就这样,拜拜
Demo链接在此:http://download.csdn.net/download/ximen_qing/9756977
不要钱
0 0
- 安卓开发:模仿微博中间加号按钮弹出发布页面
- 新浪微博加号按钮OC代码
- 安卓开发:自定义PopupWindow,实现模仿iOS底部弹出菜单
- 安卓模仿新浪微博看看
- 安卓开发:eclipse中创建按钮,响应按钮事件并弹出对话框
- Android模仿微信加号菜单模式
- 安卓NDK开发案列二:模仿压力表
- iOS模仿安卓Material Design的涟漪动画按钮
- 仿新浪微博加号弹出界面动画
- 新浪微博加号按钮动画实现方案
- 安卓模仿电子词典
- 安卓模仿签名
- JavaScript模仿微博发布效果
- JAVA安卓开发在MainActivity之前添加一个含有按钮页面跳转
- 安卓开发:模仿微信,QQ评论输入框,使用PopupWindow完美实现
- 安卓开发:模仿微信,QQ评论输入框,使用PopupWindow完美实现(新版)
- asp.net 页面中间弹出提示
- 安卓开发页面跳转
- 关于BeanUtils.copyProperties( )方法的使用
- Apache Mahout的协同过滤算法分析
- Linux系统:安装QQ教程
- 感谢
- 一篇特别长的总结(C专家编程)
- 安卓开发:模仿微博中间加号按钮弹出发布页面
- 百度前端技术学院(IFE)2017春-热身任务
- CSS教程:div垂直居中的N种方法[转]
- 来自萌新~的求助 希望有经验的大神帮帮忙
- 每秒处理10万订单乐视集团支付架构
- springmvc 配置多视图(jsp,freemarker,HTML等)
- 单继承析构函数与构造函数
- 编译最新版webrtc源码和编译好的整个项目10多个G【分享】
- 蜂窝地图研究