Android UI进阶之仿iphone的tab效果一

移动开发 Android
每一个Tab对应了一个布局,一个Activity,对应了多个功能布局。看看本篇所讲述的吧。

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

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

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

在xml中这样配置

  1. <?xml version="1.0" encoding="utf-8"?> 
  2.    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"      
  3.     android:orientation="vertical" 
  4.     android:layout_width="fill_parent" 
  5.     android:layout_height="fill_parent" 
  6.     android:background="#C5CCD4FF"      
  7. > 
  8.    <com.notice520.itab.Itab    
  9.     android:id="@+id/Tabs" 
  10.     android:layout_width="fill_parent" 
  11.     android:layout_height = "49px" 
  12.     android:layout_alignParentBottom"true"   
  13.   /> 
  14. </RelativeLayout> 

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

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

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

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

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

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

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

来看看效果

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

【编辑推荐】

Android UI设计模式

Android四种Activity的加载模式

Android应用之Activity传参数与跳转

iPhone音乐播放应用软件UI设计实录

谷歌Android UI设计技巧:新的UI设计模式

责任编辑:zhaolei 来源: 互联网
相关推荐

2011-06-03 09:34:14

Android iphone tab

2015-02-02 16:42:49

特效密码锁

2015-03-30 14:24:06

网易布局

2012-12-27 10:51:14

Android开发iPhone时间轮

2011-04-15 09:29:20

jQueryFlash

2014-07-08 12:26:24

Android LUI设计

2013-07-24 18:14:36

Android开发学习Android UIButton

2011-07-08 10:15:15

IPhone 动画

2014-12-31 16:37:16

win8磁盘自定义ImageVie

2013-06-08 13:07:54

Android开发Android UILayout XML属

2011-04-14 16:14:22

应用商店OPPO

2015-02-28 15:15:47

插件Android桌面插件

2012-02-22 15:51:01

Android视觉效果UI

2015-01-19 12:19:04

iOS源码ActionSheet仿QQ音乐

2014-10-14 15:50:19

UIAndroid

2013-07-23 16:33:27

Android视觉效果UI

2021-08-25 07:43:17

AndroidSurfaceViewTextureView

2021-01-19 12:16:10

CSS前端UI

2022-03-11 07:22:20

CSS阴影基础前端

2021-08-12 15:01:09

鸿蒙HarmonyOS应用
点赞
收藏

51CTO技术栈公众号