`
BestUpon
  • 浏览: 290016 次
  • 性别: Icon_minigender_1
  • 来自: 兰州
社区版块
存档分类
最新评论

android 实现类似Iphone底部消息数量提示

阅读更多

1.xml布局

 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/ptas_operation_bottom_bar" android:layout_width="fill_parent" android:layout_height="wrap_content"
	android:layout_alignParentBottom="true" android:gravity="center_vertical" android:orientation="horizontal" android:paddingLeft="0.6600001dip" android:paddingRight="0.6600001dip">

	<RadioGroup android:id="@+id/main_radio" style="@style/Ptas_Tab_Radio_Group_Bg" android:layout_gravity="bottom">

		<RadioButton android:id="@+id/radio_navigation" style="@style/Ptas_Tab_Bottom" android:layout_marginTop="2.0dip" android:text="文字一" />

		<RadioButton android:id="@+id/radio_vary" style="@style/Ptas_Tab_Bottom" android:layout_marginTop="2.0dip" android:text="文字一" />

		<RadioButton android:id="@+id/radio_doing" style="@style/Ptas_Tab_Bottom" android:layout_marginTop="2.0dip" android:text="文字一" />

		<RelativeLayout android:id="@+id/notice_re" style="@style/Ptas_Tab_Bottom_Notice">
			<RadioButton android:id="@+id/radio_notice" style="@style/Ptas_Tab_Bottom" android:layout_centerInParent="true" android:layout_marginTop="2.0dip" android:text="文字一" />
			<TextView android:id="@+id/notice_count_text" android:layout_width="28dip" android:layout_height="28dip" android:layout_alignParentRight="true" android:layout_alignParentTop="true"
				android:background="@drawable/notice_count" android:gravity="center" android:text="0" android:textSize="13dip" android:textStyle="bold" />
		</RelativeLayout>
		<RadioButton android:id="@+id/radio_setting" style="@style/Ptas_Tab_Bottom" android:layout_marginTop="2.0dip" android:text="文字一" />
	</RadioGroup>

</LinearLayout>
 

 

2.代码控制切换GroupRadio

 

 

private void mainBtnGroupOnclick() {
		mainBtnGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
			@Override
			public void onCheckedChanged(RadioGroup group, int checkedId) {

				if (navigaionBtn.getId() == checkedId) {
					tabHost.setCurrentTab(1);
				} else if (varyBtn.getId() == checkedId) {
					tabHost.setCurrentTab(2);
				} else if (doingBtn.getId() == checkedId) {
					tabHost.setCurrentTab(3);
				} else if (settingBtn.getId() == checkedId) {
					tabHost.setCurrentTab(5);
				}
				if (checkedId != noticeBtn.getId()) {
					noticeBtn.setChecked(false);
					noticeBtn.setFocusableInTouchMode(false);
				}
			}
		});
		navigaionBtn.setOnClickListener(this);
		varyBtn.setOnClickListener(this);
		doingBtn.setOnClickListener(this);
		noticeBtn.setOnClickListener(this);
		settingBtn.setOnClickListener(this);

	}

	@Override
	public void onClick(View view) {

		if (view.getId() == noticeBtn.getId()) {
			noticeBtn.setBackgroundResource(R.drawable.home_btn_bg_d);

			navigaionBtn.setChecked(false);
			doingBtn.setChecked(false);
			varyBtn.setChecked(false);
			settingBtn.setChecked(false);

			settingBtn.setFocusableInTouchMode(false);
			varyBtn.setFocusableInTouchMode(false);
			doingBtn.setFocusableInTouchMode(false);
			navigaionBtn.setFocusableInTouchMode(false);

			tabHost.setCurrentTab(4);
		} else {
			noticeBtn.setBackgroundColor(android.R.color.transparent);
		}
	}
 

3.更新数字

 

Handler myHandler = new Handler() {
		public void handleMessage(Message msg) {
			switch (msg.what) {
			case Main.NOTICE_COUNTER_MESSAGE_WHAT:
				int counter = msg.getData().getInt("counter", 0);
				if (counter == 0) {
					noticeCountText.setVisibility(View.GONE);
				} else {
					noticeCountText.setText("" + counter);
					noticeCountText.setVisibility(View.VISIBLE);
				}
				break;
			}
			super.handleMessage(msg);
		}
	};

	private void updateNoticeCounter() {
		new Thread(new Runnable() {
			@Override
			public void run() {
				while (!Thread.currentThread().isInterrupted()) {
					Message message = new Message();
					message.what = Main.NOTICE_COUNTER_MESSAGE_WHAT;

					Bundle data = new Bundle();
					data.putInt("counter", NoticeHolder.getNoticeInfos().size());
					message.setData(data);

					myHandler.sendMessage(message);
					try {
						Thread.sleep(100);
					} catch (InterruptedException e) {
						Thread.currentThread().interrupt();
					}
				}
			}
		}).start();
	}
  • 大小: 4.9 KB
分享到:
评论
5 楼 mmh19890108 2013-08-11  
楼主什么时候在线啊 求份源码603411857@qq.com
4 楼 hljstardust2012 2013-01-25  
可否给发给例子哈,最近正在研究hljylq@163.com,谢谢了
3 楼 lxy189 2013-01-04  
这个demo可以发我吗?谢谢了,553308140@qq.com
2 楼 danpianji 2012-09-05  
Ptas_Tab_Bottom这个xml怎么没有啊
1 楼 bsand 2012-03-15  

相关推荐

    android实现类似iPhone的badge未读消息提示

    综上所述,要在Android上实现类似iPhone的badge未读消息提示,需要结合Android的通知系统、自定义Launcher、第三方库以及良好的兼容性和性能优化策略。通过这种方式,可以为用户提供类似iOS的体验,提高应用的易用性...

    android 仿iPhone自定义底部弹出菜单

    本文将详细讲解如何在Android中实现"仿iPhone底部弹出菜单"。 1. **自定义布局设计** - 首先,创建一个包含多个菜单项的布局文件。每个菜单项通常是一个`LinearLayout`或`CardView`,包含一个图标和一个文字描述。...

    Android类似iphone的选择时间,很有用

    在Android开发中,实现一个类似iPhone的时间选择器可以极大地提升用户体验。这个功能允许用户通过直观的界面来选择特定的时间,通常包括小时和分钟。在iPhone上,这种选择器以一个可滚动的圆环形式呈现,而在Android...

    android TabHost底部菜单(类似iphone)

    本文将深入探讨如何使用TabHost构建一个类似于iPhone底部菜单的UI,并通过实际项目`myTabTest`来展示其实现过程。 首先,我们要理解TabHost的基本结构。TabHost通常由两个主要部分组成:TabWidget和FrameLayout。...

    Android 实现 类似于 iPhone 滚桶控件

    在Android开发中,有时我们需要创建一个与iPhone滚桶控件(Picker)类似的用户界面元素,以便用户能够方便地从一系列选项中进行选择。这个控件通常用于日期选择、时间选择或者是一系列数值的选择,提供了良好的交互...

    android 拖动类似Iphone AssistiveTouch的快捷键按钮

    在Android平台上,实现类似iPhone的AssistiveTouch功能,可以为用户提供便捷的触控操作,类似于浮动菜单,方便用户快速访问常用功能。这个功能通常包括屏幕截图、返回、主页、多任务等操作,而且可以自定义设置。在...

    仿造iPhone dTableView 接口开发的Android TableGroupView

    在Android开发中,为了实现类似iOS中的UITableView效果,开发者经常会选择自定义视图来达到目的。本话题将深入探讨如何仿造iPhone中的dTableView接口,创建一个名为TableGroupView的Android组件,以此来实现分组表格...

    android 类似iphone的pickerview

    在Android开发中,有时我们需要实现类似iPhone的PickerView效果,为用户提供一种选择数据的交互方式。PickerView通常用于实现选项滚动选择,例如日期选择、时间选择或者简单的列表选择。在这个场景下,我们可以...

    Android中实现Iphone样式的AlertDialog.rar

    在Android中,可以通过`ObjectAnimator`或`ValueAnimator`实现类似效果。创建动画并在显示和隐藏对话框时启动它们。 6. **处理按钮点击事件** 通过`AlertDialog.Builder`的`setPositiveButtonClickListener()`和`...

    android实现IPHONE界面

    在Android平台上实现类似iPhone的界面是一项技术挑战,但并非不可能。Android系统以其高度的可定制性和开放性,允许开发者通过自定义View来创造出各种各样的界面风格,包括模仿iPhone的UI设计。以下是一些关键的知识...

    android实现防iphone的Dialog效果

    1.实现类似于ios的dialog.iphone的Dialog 2.可以传递参数 IosDialog iosDialog = new IosDialog(MainActivity.this); ArrayList&lt;SheetItem&gt; listSheetItems;

    Android手机实现 iphone qq在线

    在Android手机上实现类似iPhone QQ在线的状态,主要是通过模拟iPhone QQ的头像和状态信息来达到视觉上的相似效果。以下是一步步详细的操作步骤: 1. **获取iPhone QQ图标**:首先,你需要找到一个iPhone QQ的图标,...

    Android 实现Iphone PickerView 大滚轮效果

    在Android开发中,为了提供与iOS相似的用户体验,有时我们需要实现类似于iPhone的PickerView组件,即大滚轮效果。这个效果通常用于让用户在一组预定义的选项中进行选择,如日期选择、时间选择或者简单的列表选择。...

    Android-仿IOSQQ底部导航栏效果可自定义多种属性效果

    在Android应用开发中,创建一个类似iOS QQ底部导航栏的效果是一项常见的需求,它能提供良好的用户体验,让用户在多个页面间轻松切换。这个项目名为"HelloWordFeng-BottomMenu-8972e35",它实现了这样一个功能,并...

    Android中实现Iphone样式的AlertDialog

    5. **自定义主题**:如果你的应用支持Android 5.0(Lollipop)及以上版本,可以使用AppCompat库中的`AlertDialog`配合自定义主题来实现类似iOS的外观。在`styles.xml`文件中定义一个主题,然后在创建`Builder`时应用...

    Android实现iphone圆角ListView和点击的效果

    在Android开发中,为了使应用界面更接近iOS的风格或者增加独特的用户体验,有时我们需要实现类似iPhone的圆角ListView以及点击效果。本篇文章将详细讲解如何在Android中复现这一功能。 首先,我们要创建一个带有...

    android仿iphone下拉刷新控件

    在Android开发中,为了提供与iOS类似的用户体验,开发者经常需要实现一种叫做“下拉刷新”(Pull-to-Refresh)的功能,这在iPhone设备上是非常常见的交互模式。本篇将详细介绍如何在Android应用中创建一个仿iPhone...

    android 实现iphone滑动解锁

    在Android平台上实现类似iPhone的滑动解锁功能,可以为用户提供熟悉的交互体验,增强应用的用户友好性。这个过程涉及到Android的触摸事件处理、图形绘制以及动画设计等多个技术领域。下面将详细阐述如何在Android中...

    android实现iphone风格的picker

    "android实现iphone风格的picker"这个主题正是关注如何在Android平台上构建一个类似iPhone中的Picker View,即一个可滚动的选择器,通常用于让用户在一系列预设选项中进行选择,如日期、时间或者特定的值列表。...

    Android高级应用源码-Android中实现Iphone样式的AlertDialog.zip

    在Android开发中,为了提供与iOS相似的用户体验,开发者经常需要在Android应用中实现类似iPhone样式的对话框(AlertDialog)。这个“Android高级应用源码-Android中实现Iphone样式的AlertDialog.zip”压缩包包含了...

Global site tag (gtag.js) - Google Analytics