- 浏览: 118890 次
- 性别:
- 来自: 南京
文章分类
- 全部博客 (135)
- java (135)
- [转]c# 画圆角矩形 (1)
- 设计模式生活实例 (1)
- .nET2.0小技巧 (1)
- 从另一个角度看敏捷实践(一)--IPM:承诺的仪式 (1)
- javascript字符串转json对象 (1)
- 使用BeanUtils时,Date类型值为空的解决方法 (1)
- Lenovo V460+Ubuntu 11.10 无线网问题 (1)
- Lucene 索引和搜索过程核心类详解 (1)
- Android短信编解码方式 (1)
- 股神巴菲特十大致富秘籍 (1)
- Map遍历的三种方法 (1)
- Android中用Toast.cancel()方法优化toast内容的显示 (1)
- ViewFlipper “Receiver not registered” Error (1)
- javax.xml.transform.TransformerFactoryConfigurationError (1)
- JNI调用的注意事项 (1)
- JUnit单元测试感悟 (1)
- 用C#写定时关机的程序 (1)
- ASP.NET开发工具Web Matrix介绍 (1)
- MapXtreme2004代码 MapControl控件中显示地图文件 (1)
- 《使用 Microsoft .NET 的企业解决方案模式》读书笔记3 (1)
- 微创短信开发平台 (1)
- 谈谈Q+平台的技术实现 (1)
- 手机防盗软件实现(源码) (1)
- 虚析构函数(总结 帖子) (1)
- c语言中去除const修饰 (1)
- ORA-01012: not logged on 解决办法 (1)
- paypal提现如何省钱 (1)
- 数独suduku (1)
- MyISAM InnoDB 区别 (1)
- 随 笔 (1)
- Android上的log,日志相关 (1)
- 百度质量部实习居然通过了~ (1)
最新评论
-
野狐禅:
ext.get('imagebrowse') is null
ExtJs上传图片预览功能 -
zhuyl_wind:
不切实际,呵呵
[]5年内买车买房-理财篇 -
in南京:
关键你那两千块钱就够交一个多月的房租!换个城市你那六百也远远不 ...
[]5年内买车买房-理财篇 -
javac_xinyun:
呵呵,看完了,确实不错,貌似第一年的房租每月算进去 ,人际关系 ...
[]5年内买车买房-理财篇 -
dishikun:
貌似很不错,就是没把房租算进去!
[]5年内买车买房-理财篇
先来看下效果:
main.xml
tabswitcher.java
iaiaiactivity.java
tabswitcher_long.9.png:
tabswitcher_short.9.png:
main.xml
<?xml version="1.0" encoding="utf-8"?><linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#ffffff"> <linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/tab" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="#ffffff"> </linearlayout></linearlayout>
tabswitcher.java
package com.iaiai.activity;import android.content.context;import android.graphics.color;import android.view.gravity;import android.view.view;import android.widget.linearlayout;import android.widget.textview;/** * * <p> * title: tabswitcher.java * </p> * <p> * e-mail: 176291935@qq.com * </p> * <p> * qq: 176291935 * </p> * <p> * http: iaiai.iteye.com * </p> * <p> * create time: 2011-8-11 * </p> * * @author 丸子 * @version 0.0.1 */public class tabswitcher extends linearlayout { private context context; private string[] texts; private int selectedposition = 0; private int oldposition = selectedposition; private int[] background = { r.drawable.tabswitcher_short, color.transparent }; private textview[] tvs; public tabswitcher(context context, string[] texts) { super(context); this.texts = texts; this.context = context; setorientation(horizontal); linearlayout.layoutparams params = new linearlayout.layoutparams( linearlayout.layoutparams.fill_parent, linearlayout.layoutparams.wrap_content); setlayoutparams(params); setbackgroundresource(r.drawable.tabswitcher_long); } @override protected void onfinishinflate() { // todo auto-generated method stub super.onfinishinflate(); tvs = new textview[texts.length]; linearlayout.layoutparams params = new linearlayout.layoutparams( linearlayout.layoutparams.fill_parent, linearlayout.layoutparams.wrap_content); params.weight = 1; params.gravity = gravity.center_vertical; for (int i = 0; i < texts.length; i++) { textview child = new textview(context); child.settag(i); child.settextsize(16); child.settextcolor(color.black); child.setgravity(gravity.center); tvs[i] = child; child.setonclicklistener(listener); this.addview(child, params); } } onclicklistener listener = new onclicklistener() { @override public void onclick(view v) { selectedposition = (integer) v.gettag(); if (selectedposition != oldposition) { tvs[oldposition].setbackgroundcolor(background[1]); oldposition = selectedposition; ((textview) v).setbackgroundresource(background[0]); if (onitemclicklisener != null) { onitemclicklisener.onitemclicklisener(v, selectedposition); } } } }; @override protected void onsizechanged(int w, int h, int oldw, int oldh) { super.onsizechanged(w, h, oldw, oldh); oldposition = selectedposition; for (int i = 0; i < texts.length; i++) { tvs[i].settext(texts[i]); if (selectedposition == i) { tvs[i].setbackgroundresource(background[0]); } else { tvs[i].setbackgroundcolor(background[1]); } } } private onitemclicklisener onitemclicklisener; public void setonitemclicklisener(onitemclicklisener onitemclicklisener) { this.onitemclicklisener = onitemclicklisener; } public interface onitemclicklisener { void onitemclicklisener(view view, int position); } public void settexts(string[] texts) { this.texts = texts; } public void setselectedposition(int selectedposition) { this.selectedposition = selectedposition; }}
iaiaiactivity.java
package com.iaiai.activity;import android.app.activity;import android.os.bundle;import android.view.view;import android.widget.linearlayout;import android.widget.toast;import com.iaiai.activity.tabswitcher.onitemclicklisener;/** * * <p> * title: iaiaiactivity.java * </p> * <p> * e-mail: 176291935@qq.com * </p> * <p> * qq: 176291935 * </p> * <p> * http: iaiai.iteye.com * </p> * <p> * create time: 2011-8-11 * </p> * * @author 丸子 * @version 0.0.1 */public class iaiaiactivity extends activity { @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); tabswitcher tabswitcher = new tabswitcher(this, new string[] { "1", "2", "3", "4" }); tabswitcher.setselectedposition(1); tabswitcher.setonitemclicklisener(onitemclicklisener); tabswitcher.onfinishinflate(); linearlayout linearlayout = (linearlayout) findviewbyid(r.id.tab); linearlayout.addview(tabswitcher, new linearlayout.layoutparams( linearlayout.layoutparams.fill_parent, linearlayout.layoutparams.wrap_content)); } onitemclicklisener onitemclicklisener = new onitemclicklisener() { @override public void onitemclicklisener(view view, int position) { // todo auto-generated method stub // switch (position) { case 0: case 1: case 2: toast.maketext(iaiaiactivity.this, "position clicked:" + position, toast.length_short) .show(); break; default: break; } } };}
tabswitcher_long.9.png:
tabswitcher_short.9.png:
发表评论
-
百度质量部实习居然通过了~
2012-02-08 12:23 986[size=small;]? ? ?本来打算在软工所苦 ... -
Android上的log,日志相关
2012-02-07 14:18 1525摘自:http://blog.csdn.net/met ... -
随 笔
2012-02-04 13:39 596金风玉露一相逢,便胜却人间无数。英文版: chemis ... -
MyISAM InnoDB 区别
2012-02-02 16:59 732<h1 id="artibody ... -
数独suduku
2012-01-31 14:38 915sudu sudu sudu sudu sudu su ... -
paypal提现如何省钱
2011-12-28 16:58 1221据PayPal中文注册得知,如今很多收样品费的外贸商户 ... -
ORA-01012: not logged on 解决办法
2011-12-28 13:08 3496<span style="font-f ... -
c语言中去除const修饰
2011-12-21 10:54 1427[size=16px;]<span style= ... -
虚析构函数(总结 帖子)
2011-12-21 09:54 698<span style="" ... -
手机防盗软件实现(源码)
2011-12-20 12:54 936<a href="http://blo ... -
谈谈Q+平台的技术实现
2011-12-20 09:49 960这篇文章是我个人 ... -
微创短信开发平台
2011-12-19 11:39 767在网上闲逛,发现了一个站点,微创短信开发平台(http ... -
《使用 Microsoft .NET 的企业解决方案模式》读书笔记3
2011-12-19 10:24 776第3章 Web表示模式 没有一个设计策略能够适合所有情 ... -
MapXtreme2004代码 MapControl控件中显示地图文件
2011-12-15 14:29 901::<?xml:namespace prefix ... -
ASP.NET开发工具Web Matrix介绍
2011-12-15 13:39 967<p class="MsoPlain ... -
用C#写定时关机的程序
2011-12-15 11:14 702</span></font>& ... -
JUnit单元测试感悟
2011-12-14 11:29 861<p class="MsoNorma ... -
JNI调用的注意事项
2011-12-14 09:34 749JNI的简单教程网上很多,看看就能够明白,照着操作也基 ... -
javax.xml.transform.TransformerFactoryConfigurationError
2011-12-13 13:34 848<span style="" ... -
ViewFlipper “Receiver not registered” Error
2011-12-12 10:59 1123偶尔出现这个错误: <span> < ...
相关推荐
《TabSwitcher自定义控件:打造不带滑动效果的UI组件》 在Android应用开发中,界面设计和用户体验是至关重要的因素。一个优秀的应用不仅需要功能强大,还需要有一个直观且美观的用户界面。TabSwitcher控件是实现多...
【标题】"TabSwitcher自定义控件(带滑动效果)"揭示了本文将要讨论的是一个特定的Android开发中的自定义用户界面组件。TabSwitcher控件通常用于在多个选项卡之间切换,而且这个控件增加了滑动交互,使得用户体验更加...
在实际项目中,"TabSwitcher"控件的源码是一个很好的学习资源,可以帮助我们了解Android手势检测、动画实现以及自定义控件设计等方面的知识。你可以通过提供的博客链接(https://gundumw100.iteye.com/blog/1140930...
在Android开发中,自定义UI元素是提升应用用户体验的重要手段之一。RadioButton作为常用的控件,其默认样式可能无法满足所有设计需求。本文将详细介绍三种方法来定制RadioButton的样式,包括使用XML文件、在Java代码...
本资源提供了Android系统浏览器的源码以及对应的UML(Unified Modeling Language)分析图,这对于理解浏览器的工作原理、优化性能、自定义功能或开发自己的浏览器应用都有着极大的帮助。 一、Android系统浏览器源码...
在Android应用开发中,设计用户友好的界面是至关重要的,其中Tab切换是常见的导航模式,让用户能在多个相关视图间轻松切换。`AndroidTabSwither`是一个专为Android平台设计的简单易用的Tab实现库,它允许开发者创建...
Radio Button在Android开发中是一种常见的UI控件,用于在多个选项中进行单选。它通常包含一个小圆点,表示当前选中的状态。本篇将详细讲解如何通过三种方法定制Android的RadioButton样式。 1. **使用XML文件进行...
TabSwitcher尝试通过让您##如何使用来解决此问题。安装后,按`CTRL + SHIFT + K'或`CMD + SHIFT + K'以显示选项卡切换器。您可以按Enter或使用鼠标键导航到选项卡。您可以在任何标签上按分号(即“;”键)关闭该标签...
TL; DR记住Textmate的Command-T?铬是一样的。 警告:快捷方式必须手动设置在铬的扩展名... TL; DR记住Textmate的Command-T?铬是一样的。 警告:必须在chrome的扩展设置中手动设置快捷方式。...建议:使用alt-space。...
标签切换器 使用ember.js构建的选项卡切换器小部件,用于显示ember组件的工作方式。 先决条件 您需要在计算机上正确安装以下物品。 (带有NPM) 安装 git clone 此存储库 切换到新目录 npm install ...
语言:English 快速过滤和切换窗口和选项卡 使用选项卡切换器,您可以仅使用键盘快速切换到其他打开的选项卡,包括按部分名称或URL匹配过滤选项卡。...隐私政策请在http://flowapps.co/tabswitcher/privacypoli
快速控制,过滤和切换标签 ...请在https://github.com/kallepersson/tabswitcher中查看源代码。如何更改键盘快捷键以显示Tab切换器? –很简单,您可以在扩展设置页面底部更改键盘快捷键! 支持语言:English
在实际使用中,用户可能需要安装并启用这个扩展,然后在浏览器的某个指定位置(如地址栏旁或自定义快捷键)启动搜索功能。对于经常需要处理大量标签页的用户,例如研究人员、内容创作者或是多任务处理者来说,"提前...