说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

android编程实现仿iphone的tab效果

HTML文档下载 WORD文档下载 PDF文档下载
很多人都喜欢iphone 酷炫的界面,虽然android的原生控件已经足够漂亮,但是往往不能满足用户越来越挑剔的眼光。其实,我们完全可以自己来绘制界面。今天我就来分享下做一个和iphone一样的tab界面。

相信很多人都喜欢iphone 酷炫的界面,虽然android的原生控件已经足够漂亮,但是往往不能满足用户越来越挑剔的眼光。其实,我们完全可以自己来绘制界面。今天我就来分享下做一个和iphone一样的tab界面。下面先来看下iphone上的效果

 

在开始之前,我们必须掌握最基础的,也就是android中图形界面的绘制。首先讲下简单图形的绘制,这里我们就借绘制下图的背景部分来讲下吧。

 

先看代码:

 

publicclass Itab extends View {private Paint mPaint;public Itab(Context context, AttributeSet attrs){   //构造器,View下构造器有三种方式,在xml中配置必须实现这种方式   super(context, attrs);}@Override protected void onDraw( Canvas canvas ){        super.onDraw( canvas );        mPaint =new Paint( );//创建画笔        mPaint.setStyle( Paint.Style.FILL );//设置画笔 为实心        Rect r =new Rect( );//创建一个矩形        this.getDrawingRect( r );        canvas.drawColor( 0xFF000000 );        mPaint.setColor( 0xFF434343 );	//绘制这个矩形图形        canvas.drawLine( r.left, r.top+1, r.right, r.top+1, mPaint );}}

在xml中这样配置

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:background="#C5CCD4FF"><com.notice520.itab.Itab        android:id="@+id/Tabs"        android:layout_width="fill_parent"        android:layout_height ="49px"        android:layout_alignParentBottom ="true"/></RelativeLayout>

这样就会得到如下的效果,这显然不是我们想要的。

 

 

不过别着急,我们只要在onDraw()这个方法里面添加如下一段代码:

int color =46;for( int i =0; i <24; i++ ){     mPaint.setARGB( 255, color, color, color );     canvas.drawRect( r.left, r.top + i +1, r.right, r.top + i +2, mPaint );     color--;}

通过循环的绘制,我们就可以得到如下的效果

是不是很简单呢。图形绘制中还有一个比较重要的是贴图的绘制。同样这个例子,我们在这个背景上绘制一个图标,非常的简单,同样在onDraw()这个方法里面添加如下代码

Bitmap icon = BitmapFactory.decodeResource( getResources( ), R.drawable.monitor );Paint p =new Paint( Paint.ANTI_ALIAS_FLAG | Paint.FILTER_BITMAP_FLAG);p.setColor(Color.WHITE);    canvas.drawBitmap(icon, 10, 10, p);

代码非常简单,第一行获得图片资源,第二行第一一个画笔,同时打开抗锯齿和过滤,第三行设置画笔颜色,最后一行绘制图片。

来看看效果

代码非常简单,第一行获得图片资源,第二行第一一个画笔,同时打开抗锯齿和过滤,第三行设置画笔颜色,最后一行绘制图片。

来看看效果

 

 

还不错吧,当然要实现完全的tab效果,这还是远远不够的。今天就写到这吧,天冷啊,手都冻僵了,明天或者后天我再接着写,从而最终实现和iphone一样的tab,当然也有完全可以替代原生tab的功能。大家有什么问题可以留言讨论哈。

 

微软Xbox Live或登陆iOS和Android平台 TIOBE 2014年3月编程语言排行榜:F#直逼Top10 Atlassian面向企业客户推出Git Essentials工具 Mt.Gox破产,都是错误编程惹的祸 Jamo创始人揭底AWS,棱镜阴影下的云行业态势 成本、创新、可靠:游戏公司FunPlus选择AWS的三大理由 全透明、可折叠,平板电脑概念机是这样的 插件大集合!开源包管理器Alcatraz迎来Xcode 5更新 Q语言:新型的数据定义语言 非响应式手机网站页面的优化 高薪必备:Hadoop求职者的6大攻略 微软或将于四月发布“返璞归真”的Windows 8.1 Update 1 《近匠》第14期:LiveCode——全民开发工具 美团梁堰波:用SQL-on-Hadoop构建互联网数据仓库与商务智能系统 程序员游戏Style:亚特兰大极客使用机器学习玩转Flappy Bird Gleasy CTO薛珂:成立3年,企业用户2万+,移动办公蕴藏较大发展机遇 Unity Awards展区“点亮”Unity亚洲开发者大会 DevBox:最实用的移动开发辅助工具包 【技术博客推荐】创客程序员设计实现最小物联网系统 MySQL还是NoSQL:开源盛世下的数据库该如何选择 利用Hadoop Streaming处理二进制格式文件 如果没有强大的API,那么还是与OpenStack兼容吧 企业社交工具为何走向衰退? 封闭还是开放?雅虎禁止用户使用Facebook、谷歌ID登录和使用其服务 【OSTC讲师专访】罗聪翼:付出和回报在开源世界成正比 近匠:“词Ci”——全栈“女神”如何诠释倾城之美 国内首届引擎黑客松Cocos2d-x Hackathon即将开赛! 抛弃CloudStack,GoDaddy加入OpenStack PaaS平台之争:Cloud Foundry是赢家吗? 投资超140亿美元,涨幅达30%,数据密集型应用将占领第三平台 汽车开放平台:看看通用汽车是怎么做API的 请问MSDN.net 中文版光盘出了吗??????????????????????? 关于STRING的问题 在IE中程序运行有错误?请指点! JB8做个BMP,奇怪问题 有谁知道*.dns用什么软件打开吗,急!!! 大家给我推荐一个delphi源码网站 Oracle8.17的安装问题,请大家帮忙,急呀!谢谢! csv文件存储求助 问个关于checkboxlist控件的用法! 客户端通过Session Bean 调用 Local EntityBean的问题. 启动j2ee的问题--j2ee -verbose 那里能够下载破解的install shield 5.0 or 5.5 or 6.0? 我想搞网络游戏开发,请教各位的意见 如何在接受表单的ASP文件中,去知晓是这个表单中的哪个'确认按钮'被按下了?? 我的数据库打不开了!!! 连接MySQL数据库服务器? 有谁可以推荐几个国外的比较热的asp论坛,多谢! 我是一个菜鸟,想学asp,希望前辈给指条路 有人知道工程硕士是怎么回事吗?和普通的有什么不同啊,可以考普通的博士吗?谢谢阿 access数据库为何备份出错? 有了主键,还需要建立索引吗?解决送分。 在Oracle的逻辑数据库结构中有个概念叫"范围"的是什么意思呀? 能将javascript改写成其它语言吗? 为什么动态创建的控件不能保存? HelpProvider控件的问题 如何把几个dbf表中的数据导到一个表中? 软件汉化有几种方法呢? 各位大虾,求助,在线急等! 看看我能放多少分.... 急啊,我刚买的电脑就出问题了~~~~ 大虾有没有《人月神话》的电子版啊? 天那,资源泄漏 怎样用Wingate绑定IP 高手请进!! 求WSAD 5.0 中文开发文档。 如何做rich Client? VB6在windowsXP中,无法用RmDir命令删除文件夹,只能删除文件,怎么回事?如何解决?在windows98中可以删除。 一个EXCEL的问题,请HELP update 没有加 where 字句导致误操作 怎么恢复(十万火急) ? 为什么国内域名比国际的还贵呢? BDE问题 请教三层结构中数据库访问 的问题 请教大虾怎样编写《网络连接监测》 ,还有怎样进行网络流量监测?(附源代码)多谢! 小问题 如何求总? 大家来帮帮忙 怎样在IE客户端用脚本取得本地机器名和本地默认打印机名称?盼高手赐教。 请教三层结构中数据库访问的问题 除了变量名不是内存地址,其他名都是地址。对么? 如何检测 Text1.text 中的输入的是否是日期格式 2003-12-31 ? 哦靠,什么病毒,大家帮我看看,怎么杀虫? 沙特再拒入“非常” 指安理会未实现中杭州一女三男聊轻生烧炭自杀致1人死亡英国少年考好成绩卖关子 慈父见成绩单美俄防长将定期就安全问题进行视频协商两大强台风同时抵日本 伊豆大岛百余人马来西亚水坝泄洪引发水灾 3死3失踪两大强台风同时抵日本 伊豆大岛百余人有些美是永远无法超越的 奥黛丽赫本珍美国研究人员观测到最古老银河 距今约美一少女持枪照顾5岁男童 男童误将自泰咖啡摊主因招牌与星巴克标志雷同被起北京一日两次发文管控新房价格 调控趋美媒称中国教改“打压”英语不代表西方日将在福岛举办首脑论坛拉拢太平洋岛国日本进入胖女时代 专家称或因对瘦人审日议员拟提建设赌场法案 称为东京奥运美一女老师横尸树林 14岁男孩涉嫌谋浙江舟山船员供需不平衡 高级船员求职临海户外休闲用品业蓬勃发展 企业家盼报告称朝鲜核试验场挖新坑道 短期内不美国研究人员观测到最古老银河 距今约半个月一颗小行星降临地球美国拟对核部队进行全面整改时光之桥企业“走出去”的困境与出路刚果(金)宣布埃博拉疫情结束峰会首日尚未聚焦主题瑞典称水下不明物为外国小潜艇塞防长期待访华增进交流合作“菲莱”电池耗尽暂时无法工作专家研讨走向新常态的新兴经济体大学的模样“西北风”成法国烫手山芋光明日报:从中华优秀传统文化中汲取核加强我国个人信用信息管理的法律途径奥巴马放手一搏强推移民改革飞向天空 驾驭未来第二期学前教育三年行动计划实施中国文联文艺志愿服务团走进大兴安岭慰清晨血压高更危险法律组织为医院构建纠纷风险防控体系肿瘤治疗新技术有望更加简便易行
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘