android 使用Activity做窗口弹出(模拟Dialog)
我们下面使用Activity,模拟一个dialog:
首先看布局:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="270dp"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
> <!--标题-->
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="分享到哪里?"
android:textSize="18sp"
android:padding="10dp"
android:textColor="@color/dialog_title_color"
android:gravity="center_horizontal"
/> <!--分割线-->
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/bg_action_bar_color"
/> <!--分享到哪里-->
<GridView
android:id="@+id/dialog_share_grid_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:listSelector="@drawable/empty_selector"
android:numColumns="3"
android:horizontalSpacing="10dp"
android:verticalSpacing="15dp"
android:layout_margin="10dp"
/>
</LinearLayout>
然后是该Activity
package cn.via.dageeeOrderFood.activity; import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.TextView;
import cn.via.dageeeOrderFood.R; /**
* Created by Heyiyong on 2014-3-5 上午9:12.
*/
public class ShareActivity extends Activity {
private int[] shareIcons = {
R.drawable.ic_share_duanxin,
R.drawable.ic_share_pengyouquan,
R.drawable.ic_share_qq,
R.drawable.ic_share_qqkongjian,
R.drawable.ic_share_weixin,
}; private String[] shareTitles = {
"短信", "朋友圈", "QQ好友", "QQ空间", "微信"
}; public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.dialog_share); GridView gridView = (GridView) findViewById(R.id.dialog_share_grid_view);
gridView.setAdapter(new BaseAdapter() {
@Override
public int getCount() {
return shareIcons.length;
} @Override
public Object getItem(int i) {
return null;
} @Override
public long getItemId(int i) {
return 0;
} @Override
public View getView(int i, View view, ViewGroup viewGroup) {
View itemView = View.inflate(ShareActivity.this, R.layout.item_share_grid_view, null);
((ImageView) itemView.findViewById(R.id.item_share_img)).setImageResource(shareIcons[i]);
((TextView) itemView.findViewById(R.id.item_share_tv)).setText(shareTitles[i]);
return itemView;
}
});
}
}
gridView的item布局
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_horizontal"
android:background="@drawable/share_grid_view_item_selector_xml"
> <ImageView
android:id="@+id/item_share_img"
android:layout_width="56dp"
android:layout_height="56dp"
android:src="@drawable/ic_share_duanxin"
android:padding="4dp"
/> <TextView
android:id="@+id/item_share_tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="短信"
android:textSize="13sp"
android:layout_marginTop="3dp"
android:textColor="@color/dialog_content_color"
/>
</LinearLayout>
最后在AndroidManifest文件:
<!--分享的dialogActivity-->
<activity
android:name=".activity.ShareActivity"
android:theme="@style/dialogActivity"
/>
其中theme为:
<!--用activity模拟dialog-->
<style name="dialogActivity">
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowFrame">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowBackground">@drawable/dialog_bg_update</item>
<item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
<item name="android:backgroundDimEnabled">true</item>
</style>
drawable/dialog_bg_update.xml
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/dialog_background_color"/>
<!--<stroke android:color="#ff5e5e5e" android:width="1dp"/>-->
<stroke android:color="@color/bg_action_bar_color" android:width="1dp"/>
<corners android:radius="10dp"/>
</shape>
drawable/share_grid_view_item_selector_xml.xml
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/item_press_color"/>
<corners android:radius="5dp"/>
</shape>
</item>
<item>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/dialog_background_color"/>
</shape>
</item>
</selector>
android 使用Activity做窗口弹出(模拟Dialog)的更多相关文章
- android PopupWindow实现从底部弹出或滑出选择菜单或窗口
本实例弹出窗口主要是继承PopupWindow类来实现的弹出窗体,布局可以根据自己定义设计.弹出效果主要使用了translate和alpha样式实现,具体实习如下: 第一步:设计弹出窗口xml: &l ...
- MFC弹出模拟对话框
Windows对话框分为两类:模态对话框和非模态对话框. 模态对话框是这样的对话框,当它弹出后,本应用程序其他窗口将不再接受用户输入,只有该对话框响应用户输入,在对它进行相应操作退出后,其他窗口才能继 ...
- Android ListView 长按列表弹出菜单
Android ListView 长按列表弹出菜单 设置长按菜单 listView.setOnCreateContextMenuListener(new View.OnCreateContextMen ...
- JavaScript动态实现div窗口弹出&消失功能
先积累一个JavaScript动态实现div窗口弹出&消失功能 首先是index.jsp代码 <html> <head> <link rel="styl ...
- 实现 像网易云音乐 播放列表那样的弹出型Dialog
如图 所示是点击Test之后的 弹出的Dialog (请无视我工程的命名) 20161017/**加入点击回调,假设dialog里放了一个TextView*/ 得先写一个点击回调 public int ...
- CKEDITOR 4.6.X 版本 插件 弹出对话框 Dialog中 表格 Table 自定义样式Style 问题
项目开发过程中,发现CKEDITOR 插件的弹出框 内 如果跟据项目需要写表格(table tr td),表格的边框等属性会被 CKEDITOR的清除或覆盖,导致表格很难看. 问题关键: 插件弹出框d ...
- Android Demo---实现从底部弹出窗口
在前面的博文中,小编简单的介绍了如何制作圆角的按钮以及圆角的图片,伴着键盘和手指之间的舞步,迎来新的问题,不知道小伙伴有没有这样的经历,以App为例,点击头像的时候,会从底部弹出一个窗口,有从相册中选 ...
- 【Android】百度地图自定义弹出窗口
我们使用百度地图的时候,点击地图上的Marker,会弹出一个该地点详细信息的窗口,如下左图所示,有时候,我们希望自己定义这个弹出窗口的内容,或者,干脆用自己的数据来构造这样的弹出窗口,但是,在百度地图 ...
- android中使用PopupWindow实现弹出窗口菜单
结合上篇android中使用ViewPager实现图片拖动,我们实现了点击“帮助”按钮的功能,这一篇则是接着上一篇,让我们一起来完成“我的”按钮的功能,这一功能,则是使用PopupWindow来实现弹 ...
随机推荐
- 博客迁到CSDN
之前一直是博客园和CSDN博客同步更新 现在不在博客园继续写博客,十一国庆节假后只用CSDN博客了.祝各位访客国庆节快乐! CSDN博客地址: http://blog.csdn.net/it_liuc ...
- 8个应该去逛逛JQuery的学习网站
根据国外科技网站 W3Techs 一项调查了近100万个网站数据显示,jQuery是目前最流行的 JavaScript 库.对于初学者来说,有的时候很难找到一个好的学习jQuery的网站,所以本文收集 ...
- CodeForces 679B(Bear and Tower of Cubes)
题意:Limak要垒一座由立方体垒成的塔.现有无穷多个不同棱长(a>=1)的立方体.要求:1.塔的体积为X(X<=m).2.在小于X的前提下,每次都选体积最大的砖块.3.在砖块数最多的前提 ...
- 一种简单的权限管理ER图设计
权限管理支持动态地管理用户的角色和权限.权限代表用户可以在什么对象上进行什么操作:角色是一组权限的集合. PS:当增加或删除某个用户的角色时,系统自动将该角色对应的权限(角色 -权限关联表)增加或删除 ...
- Java多线程(五) Lock接口,ReentranctLock,ReentrantReadWriteLock
在JDK5里面,提供了一个Lock接口.该接口通过底层框架的形式为设计更面向对象.可更加细粒度控制线程代码.更灵活控制线程通信提供了基础.实现Lock接口且使用得比较多的是可重入锁(Reentrant ...
- JQuery 预热
这是第一次在博客园写随笔,之所以有这样的冲动是因为每次看到很多园友不断的发表文章,记录下自己的点点滴滴,内心就在不断的忏悔,我很敬佩这种人,不管他们表达的东西是初级还是精辟,我认为只要去坚持写了就是一 ...
- js 执行效率
循环 在JavaScript中,我们可以使用for(;;),while(),for(in)三种循环,这三种循环中for(in)的效率极差,因为他需要查询散列键,只要可以就应该尽量少用.for(;;)和 ...
- btrace 实践笔记
btrace简介: btrace 是一个使用在JAVA平台上面的,安全的,动态跟踪工具.它一般用于动态跟踪正在运行的jAVA程序. 使用说明在这里.下载地址在这里. 下载的时候 ...
- PHP中session的使用
1.初始化(使用session前都要使用,一个页面用一个就可以了) session_start(); 2.保存 $_SESSION[$sessionName]=$value; (value可以是dou ...
- AvalonDock 2.0 的简单运用
最近在研究AvalonDock的一些使用,碰到了一些问题.现在拿出来跟大家分享分享. 网上找了一大把AvalonDock 1.3版本的资料,弄出Demo后发现属性面板(DockableContent) ...