android Activity实现底部滑动弹出窗口及源码下载地址

在做微信、微博、qq等分享时,一般是点击分享按钮后会从底部弹出滑动窗口,然后选择要分享的社交平台进行分享。今日头条、腾讯新闻等内容App的评论也是从底部滑动弹出输入窗口,进行评论输入的。本篇文章就讲讲怎么通过Activity实现底部弹出滑动窗口的。实现效果是通过Animation功能实现的,效果如下: 源码下载地址

主要代码如下:

一、滑动窗口PopupShareActivity类

继承自Activity并实现了OnClickListener,方便处理Click事件。代码如下:

public class PopupShareActivity extends Activity implements View.OnClickListener {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_popup_share);

//全屏Activity操作

getWindow().setLayout(WindowManager.LayoutParams.FILL_PARENT, WindowManager.LayoutParams.FILL_PARENT);

//QQ分享按钮

ImageBtn MyIBtn1 = (ImageBtn)findViewById(R.id.MyIBtn_1);

MyIBtn1.setImageResource(R.drawable.ic_share_qq);

MyIBtn1.setText("QQ");

ImageBtn MyIBtn2 = (ImageBtn)findViewById(R.id.MyIBtn_2);

MyIBtn2.setImageResource(R.drawable.ic_share_sina);

MyIBtn2.setText("微博");

ImageBtn MyIBtn3 = (ImageBtn)findViewById(R.id.MyIBtn_3);

MyIBtn3.setImageResource(R.drawable.ic_share_wechat);

MyIBtn3.setText("微信");

ImageBtn MyIBtn4 = (ImageBtn)findViewById(R.id.MyIBtn_4);

MyIBtn4.setImageResource(R.drawable.ic_share_wxcircle);

MyIBtn4.setText("朋友圈");

Button btn_cancel = (Button) this.findViewById(R.id.btn_cancel);

btn_cancel.setOnClickListener(this);

}

@Override

public void onClick(View view) {

switch (view.getId()) {

case R.id.btn_cancel:

break;

default:

break;

}

finish();

}

}

二、分享类布局

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android";

android:layout_width="fill_parent"

android:layout_height="wrap_content"

xmlns:app="http://schemas.android.com/apk/res-auto";

android:gravity="center_horizontal"

android:orientation="vertical">

<LinearLayout

android:id="@+id/pop_layout"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:gravity="center_horizontal"

android:orientation="vertical"

android:layout_alignParentBottom="true"

android:background="@color/color_white"

>

<LinearLayout

android:id="@+id/share_layout"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:orientation="horizontal"

android:layout_alignParentBottom="true"

android:background="@color/color_white"

>

<com.jxkj.bbccode.anxiuyunslid.component.ImageBtn

android:id="@+id/MyIBtn_1"

android:layout_height="wrap_content"

android:layout_width="0dp"

android:layout_weight="1.0"

android:clickable="true"

android:focusable="true"

/>

<com.jxkj.bbccode.anxiuyunslid.component.ImageBtn

android:id="@+id/MyIBtn_2"

android:layout_width="0dp"

android:layout_weight="1.0"

android:layout_height="wrap_content"

android:clickable="true"

android:focusable="true"

/>

<com.jxkj.bbccode.anxiuyunslid.component.ImageBtn

android:id="@+id/MyIBtn_3"

android:layout_width="0dp"

android:layout_weight="1.0"

android:layout_height="wrap_content"

android:clickable="true"

android:focusable="true"

/>

<com.jxkj.bbccode.anxiuyunslid.component.ImageBtn

android:id="@+id/MyIBtn_4"

android:layout_width="0dp"

android:layout_weight="1.0"

android:layout_height="wrap_content"

android:clickable="true"

android:focusable="true"

/>

</LinearLayout>

<Button

android:id="@+id/btn_cancel"

android:layout_marginLeft="20dip"

android:layout_marginRight="20dip"

android:layout_marginTop="15dip"

android:layout_marginBottom="15dip"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="取消"

android:textColor="#ffffff"

android:textStyle="bold"

/>

</LinearLayout>

</RelativeLayout>

三、AndroidManifest添加Activity配置

<activity android:name=".activity.PopupShareActivity"

android:theme="@style/PopupShareActivity">

四、PopupShareActivity主题

<style name="MyDialogStyleBottom" parent="Theme.AppCompat.Light.NoActionBar">

<item name="android:windowAnimationStyle">@style/AnimBottom</item>

<item name="android:windowFrame">@null</item>

<!-- 边框 -->

<item name="android:windowIsFloating">true</item>

<!-- 是否浮现在activity之上 -->

<item name="android:windowIsTranslucent">true</item>

<!-- 半透明 -->

<item name="android:windowNoTitle">true</item>

<!-- 无标题 -->

<item name="android:windowBackground">@android:color/transparent</item>

<!-- 背景透明 -->

<item name="android:backgroundDimEnabled">true</item>

<!-- 模糊 -->

</style>

<style name="AnimBottom" parent="@android:style/Animation">

<item name="android:windowEnterAnimation">@anim/push_bottom_in</item>

<item name="android:windowExitAnimation">@anim/push_bottom_out</item>

</style>

五、Animation动画效果

在anim目下下定义xml文件分别为:

<!-- 上下滑入式 -->

<set xmlns:android="http://schemas.android.com/apk/res/android"; >

<translate

android:duration="200"

android:fromYDelta="100%p"

android:toYDelta="0"

/>

</set>

<?xml version="1.0" encoding="utf-8"?>

<!-- 上下滑出式 -->

<set xmlns:android="http://schemas.android.com/apk/res/android"; >

<translate

android:duration="200"

android:fromYDelta="0"

android:toYDelta="50%p" />

</set>

 

时间: 2024-10-06 00:01:40

android Activity实现底部滑动弹出窗口及源码下载地址的相关文章

Android中Loader及LoaderManager的使用(附源码下载)

managedQuery方法的缺陷 Loader是用来更好地加载数据的,在我们谈论Loader之前,我们先研究一下Activity的managedQuery方法,该方法也是用于在Activity中加载数据的.在Android 3.0之前的版本中,我们如果想在Activity中通过ContentResolver对ContentProvider进行查询,我们可以方便的调用Activity的managedQuery方法,该方法的源码如下: @Deprecated public final Cursor

Android仿微信底部菜单栏+顶部菜单栏(附源码)

林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 本文要实现仿微信微信底部菜单栏+顶部菜单栏,采用ViewPage来做,每一个page对应一个XML,当手指在ViewPage左右滑动时,就相应显示不同的page(其实就是xml)并且同时改变底部菜单按钮的图片变暗或变亮,同时如果点击底部菜单按钮,左右滑动page(其实就是xml)并且改变相应按钮的亮度. 最终效果:源码免费下载 一.布局 1.顶部菜单布局,命名为top_layout.xml

鼠标滑动弹出窗口

"$().ready(function() { var indx_target; $(""#grdTest th"").each(function(index) { if($(this).html().indexOf(""姓名"")>0  ){ indx_target=index; } }); $(""#grdTest tr"").find(""td:

Android中Canvas绘图基础详解(附源码下载)

Android中,如果我们想绘制复杂的自定义View或游戏,我们就需要熟悉绘图API.Android通过Canvas类暴露了很多drawXXX方法,我们可以通过这些方法绘制各种各样的图形.Canvas绘图有三个基本要素:Canvas.绘图坐标系以及Paint.Canvas是画布,我们通过Canvas的各种drawXXX方法将图形绘制到Canvas上面,在drawXXX方法中我们需要传入要绘制的图形的坐标形状,还要传入一个画笔Paint.drawXXX方法以及传入其中的坐标决定了要绘制的图形的形状

Android Paint的使用以及方法介绍(附源码下载)

要绘图,首先得调整画笔,待画笔调整好之后,再将图像绘制到画布上,这样才可以显示在手机屏幕上.Android 中的画笔是 Paint类,Paint 中包含了很多方法对其属性进行设置,主要方法如下: setAntiAlias: 设置画笔的锯齿效果.    setColor: 设置画笔颜色    setARGB:  设置画笔的a,r,p,g值.    setAlpha:  设置Alpha值    setTextSize: 设置字体尺寸.    setStyle:  设置画笔风格,空心或者实心.    

Android之使用HttpURLConnection类查看网络图片以及网络源码

1.首先,来介绍一下HttpURLConnection类,HttpURLConnection类位于java.net包中,用于发送HTTP请求和获取HTTP响应.由于此类是抽象类,不能直接实例化对象,所以需要使用URL的openConnection()方法来获得. 例如,要创建一个http://www.baidu.com 网站对应的HttpURLConnection对象,可以使用下列代码: URL url=new URL("http://www.baidu.com"); HttpURLC

【Android 系统开发】CyanogenMod 13.0 源码下载 编译 ROM 制作 ( 手机平台 : 小米4 | 编译平台 : Ubuntu 14.04 LTS 虚拟机)

作者 : 韩曙亮 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/51592930 手机的两种模式 : 在下面有详细的图片示例; -- Recovery 模式 : 音量键增加 + 电源键, 长按上述组合键, 看到 "MI" 的 LOGO 后即进入 Recovery 模式; -- Fastboot 模式 : 音量键减小 + 电源键, 长按上述组合键, 看到 "FASTBOOT" 后, 即 进入 FA

【Android测试】【第七节】Monkey——源码浅谈

前言 根据上一篇我们学会了Monkey的用法,知道了Monkey可以非常容易的模拟伪随机的模拟事件.也许有的时候我们想让他稍微智能化一些,例如只在某个屏幕范围产生伪随机事件,或者说是只对某些指定Activity进行操作,这样就需要我们对Monkey进行改良了.而改良必须去改Monkey的源码,因此本节课们就简单的说说Monkey的源码. 源码下载地址:https://code.google.com/p/android-source-browsing/source/browse/cmds/monk

单点登录(二)使用Cookie+File实现单点登录登出(附源码)

上一篇文章<单点登录(一)使用Cookie+File实现单点登录>中,我们实现了单点登录的功能. 本文作为上一篇文章的扩展部分,添加"单点登出"功能. 源码下载:链接: http://pan.baidu.com/s/1bn57xCF 密码: 5apa 本例实现效果 浏览器中输入网址:main.tgb.com,后输入用户名:it_main(以it开头即可)和密码pwd_main(以pwd开头即可),勾选"一周内自动登录".点击"登录"按