- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章Android仿QQ空间底部菜单示例代码由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
之前曾经在网上看到android仿qq空间底部菜单的demo,发现这个demo有很多bug,布局用了很多神秘数字。于是研究了一下qq空间底部菜单的实现,自己写了一个,供大家参考。效果如下图所示: 1、实现原理很简单,底部菜单是一个水平分布的linearlayout,里面又是五个linearlayout,它们的layout_weight都为1,意味着底部菜单的子控件将屏幕宽度平均分为5部分。五个linearlayout除了中间那个,其余都在里面放置imageview和textview(中间先空着,什么都不放,后面用来放底盘和加号的)。 2、中间的加号和底盘是用framlayout实现的,现在底部居中的位置放置底盘,然后在相同位置放置加号,就搞定了。 3、设置加号的触摸事件,弹窗是用popupwindow实现的,然后再把加号的图片替换成乘号就搞定了。代码如下所示: buttommenuactivity.java:
复制代码 代码如下
package com.shamoo.qqbuttommenu; import com.shamoo.qqbuttommenu.r; import android.app.tabactivity; import android.content.context; import android.content.intent; import android.graphics.color; import android.graphics.drawable.bitmapdrawable; import android.os.bundle; import android.view.gravity; import android.view.layoutinflater; import android.view.motionevent; import android.view.view; import android.view.view.onclicklistener; import android.view.view.ontouchlistener; import android.view.windowmanager; import android.widget.abslistview; import android.widget.framelayout; import android.widget.imageview; import android.widget.linearlayout; import android.widget.popupwindow; import android.widget.popupwindow.ondismisslistener; import android.widget.radiobutton; import android.widget.tabhost; public class buttommenuactivity extends tabactivity { framelayout fmpan; tabhost tabhost; imageview image; framelayout fm; layoutinflater inflater; private radiobutton tab_home, tab_second; popupwindow popup; public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.tab); initview(); fm.setonclicklistener(new onclicklistener() { public void onclick(view v) { image.setimageresource(r.drawable.toolbar_plusback); showwindow(fmpan); } }); } private void initview() { inflater = (layoutinflater) this.getsystemservice(context.layout_inflater_service); fmpan = (framelayout)findviewbyid(r.id.tab1); fm = (framelayout)findviewbyid(r.id.btn_ck); image = (imageview)findviewbyid(r.id.image1); } private void showwindow(view parent) { if(popup == null) { layoutinflater layoutinflater = (layoutinflater) getsystemservice(context.layout_inflater_service); view view = layoutinflater.inflate(r.layout.write_tab, null); // 创建一个popuwidow对象 popup = new popupwindow(view, linearlayout.layoutparams.match_parent,320); // 设置焦点在弹窗上 popup.setfocusable(true); // 设置允许在外点击消失 popup.setoutsidetouchable(true); // 设置弹窗消失事件监听 popup.setondismisslistener(new ondismisslistener() { public void ondismiss() { // todo auto-generated method stub image.setimageresource(r.drawable.toolbar_plus); } }); // 这个是为了点击“返回back”也能使其消失,并且并不会影响你的背景 popup.setbackgrounddrawable(new bitmapdrawable()); popup.settouchinterceptor(new ontouchlistener() { public boolean ontouch(view view, motionevent event) { if(event.getaction() == motionevent.action_outside) { popup.dismiss(); image.setimageresource(r.drawable.toolbar_plus); return true; } return false; } }); } if(!popup.isshowing()) { popup.showasdropdown(parent, gravity.center, 0); } } } 。
tab.xml
复制代码 代码如下
<?xml version="1.0" encoding="utf-8"?> <tabhost xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/tabhost" android:layout_width="fill_parent" android:layout_height="fill_parent" > <framelayout android:id="@+id/l1" android:layout_width="fill_parent" android:layout_height="fill_parent" > <framelayout android:id="@android:id/tabcontent" android:layout_width="fill_parent" android:layout_height="fill_parent" /> <tabwidget android:id="@android:id/tabs" android:layout_width="fill_parent" android:layout_height="10.0px" android:visibility="gone" /> <relativelayout android:layout_width="fill_parent" android:layout_height="fill_parent"> <include android:layout_alignparentbottom="true" android:id="@+id/tab1" android:layout_width="fill_parent" android:layout_height="wrap_content" layout = "@layout/test" /> </relativelayout> </framelayout> </tabhost> 。
test.xml
复制代码 代码如下
<?xml version="1.0" encoding="utf-8"?> <framelayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/toolbar_bg" > <linearlayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="bottom" android:gravity="center_horizontal" android:orientation="horizontal" > <linearlayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" android:layout_weight="1" > <imageview android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="top|center" android:src="@drawable/tab_timefeed_opacity" android:visibility="visible" /> <textview android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|center" android:text="好友动态" android:textsize="10.0dip" android:visibility="visible" /> </linearlayout> <linearlayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" android:layout_weight="1" > <imageview android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="top|center" android:src="@drawable/tab_feedback_opacity" android:visibility="visible" /> <textview android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|center" android:text="与我相关" android:textsize="10.0dip" android:visibility="visible" /> </linearlayout> <linearlayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" android:layout_weight="1" /> <linearlayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" android:layout_weight="1" > <imageview android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="top|center" android:src="@drawable/tab_myzone_opacity" android:visibility="visible" /> <textview android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|center" android:text="主页" android:textsize="10.0dip" android:visibility="visible" /> </linearlayout> <linearlayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" android:layout_weight="1" > <imageview android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="top|center" android:src="@drawable/tab_applist_opacity" android:visibility="visible" /> <textview android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|center" android:text="应用" android:textsize="10.0dip" android:visibility="visible" /> </linearlayout> </linearlayout> <framelayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:layout_weight="1" > <imageview android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:src="@drawable/toolbar_write_bg" /> </framelayout> <framelayout android:id="@+id/btn_ck" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_weight="1" > <imageview android:id="@+id/image1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_margintop="2.0dip" android:src="@drawable/toolbar_plus" /> </framelayout> </framelayout> 。
这个demo只是仿着来玩,可能有些地方写得不怎么规范。如果有什么问题,希望大家可以指出,谢谢! 。
最后此篇关于Android仿QQ空间底部菜单示例代码的文章就讲到这里了,如果你想了解更多关于Android仿QQ空间底部菜单示例代码的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
这个问题在这里已经有了答案: What does the construct x = x || y mean? (12 个答案) 关闭 8 年前。 我已经下载了一个 javascript 脚本,第一
此前苹果下架QQ HD iPadOS 版,因此无法登陆QQ HD账号,这也给不少用户们造成了困扰。那么QQ HD平板版为什么下架无法使用呢?此外QQ HD版本用不了要如何解决呢?下面一起来看看吧!
我正要对两个 select 语句执行 join。 select x.A from (select blah - Q1 )x join (select blah - Q2 ) y on x.A = y.
最近做一个邮箱验证的功能,研究了一会,搞定了邮件的自动发送。下面用qq邮箱作为演示,一步一步来解释: 代码下载地址 首先,就是做到邮件的发送,代码如下: ?
常用的正则匹配表达式 正则表达式--验证手机号码:13[0-9]{9} 实现手机号前带86或是+86的情况:^((\+86)|(86))?(13)\d{9}$ 电话号码与手机号码同时验证:(^(\
能够查看您的数据很有帮助。当您有多个变量时,您可以形成一个散点图矩阵,例如,pairs()。散点图矩阵为您提供一组数据的二维边缘投影。 set.seed(8092) X <- matrix(rnorm
我有两个目录,每个目录都有一个文件: $ ls -l "test dir[" -rw-r--r-- 1 root media 0B 11 Dec 16:53 .ignoreme 和 $ l
我正在我的 MVC 3 应用程序中开发文件上传功能。我让它正常工作(有点),问题出在 onComplete 函数中,当我尝试删除 qq-uploader 类时,它会从所有选中的表格单元格中删除。工作流
我需要为网站的中文翻译实现相当于推文按钮,即不是我已经得到的“在微博上分享”按钮(使用生成器 here ) , 而是一个腾讯/QQ 微博分享按钮。 到目前为止我做了什么: 订阅了微博(阅读自动谷歌翻译
我是新手,通常来自 R。我想创建一个包含多条线的 QQ-Plot。 我有一个 beta 分布式数据集我想为 beta 分布尝试不同的参数,并在 one QQ-Plot 中比较它们以获得更好的比较。如果
本文实例为大家分享了php微信分享到朋友圈、QQ、朋友、微博的具体代码,供大家参考,具体内容如下 前台代码 <script src="http://res.wx.qq.com
我一直在尝试用 python 绘制泊松分布的 QQ 图。这是我到目前为止所拥有的: import numpy as np import statsmodels.api as sm import sci
我正在使用插件qq.FileUploader . 在提交文件之前,我想知道是否已经上传过同名文件。 我正在使用此代码: var uploader = new qq.FileUploader({
这个问题在这里已经有了答案: Convert Pandas Column to DateTime (8 个答案) 关闭 4 年前。 我有一个 pandas 数据框,其中有一列应该指示财政季度结束。格
本文实例讲述了php版微信支付api.mch.weixin.qq.com域名解析慢原因与解决方法。分享给大家供大家参考,具体如下: 微信支付api.mch.weixin.qq.com域名解析慢了,
我怎样才能像这样插值: {-# LANGUAGE QuasiQuotes #-} import Text.RawString.QQ myText :: Text -> Text myText myVa
对不起,如果这在某处记录,但我一直无法找到它。将括号定界符与 qq 一起使用时, 代码未插值: qq.raku #!/usr/bin/env raku say qq{"Two plus two": {
我生成了一个 QQ 图来将我的随机数生成器的分布与 beta 分布进行比较。我可以通过 使用 R 中常用的绘图命令来完成此操作 samples1 <- read.csv("test1-clean.da
所以我得到了一个使用 AJAX 动态加载的对话框,在那个框中,我有一个文件输入被 Valums qq.FileUploader 替换。加载内容后,我确实在 FileUploader 上调用了 init
我有一个原始样本数据和它的模拟数据(不要问我是怎么模拟的),我想检查直方图是否匹配。所以最好的方法是通过 qqplot 但是 statsmodels 库不允许不同大小的样本。 最佳答案 构建 qq 图
我是一名优秀的程序员,十分优秀!