欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android仿QQ空間底部菜單示例代碼

 更新時間:2013年06月17日 16:37:12   作者:  
Android仿QQ空間底部菜單的Demo,發(fā)現(xiàn)這個Demo有很多Bug,布局用了很多神秘數(shù)字。于是研究了一下并自己寫了一個與大家分享下
之前曾經(jīng)在網(wǎng)上看到Android仿QQ空間底部菜單的Demo,發(fā)現(xiàn)這個Demo有很多Bug,布局用了很多神秘數(shù)字。于是研究了一下QQ空間底部菜單的實現(xiàn),自己寫了一個,供大家參考。效果如下圖所示:
 
1、實現(xiàn)原理很簡單,底部菜單是一個水平分布的LinearLayout,里面又是五個LinearLayout,它們的layout_weight都為1,意味著底部菜單的子控件將屏幕寬度平均分為5部分。五個LinearLayout除了中間那個,其余都在里面放置ImageView和TextView(中間先空著,什么都不放,后面用來放底盤和加號的)。
2、中間的加號和底盤是用FramLayout實現(xiàn)的,現(xiàn)在底部居中的位置放置底盤,然后在相同位置放置加號,就搞定了。
3、設(shè)置加號的觸摸事件,彈窗是用PopupWindow實現(xiàn)的,然后再把加號的圖片替換成乘號就搞定了。代碼如下所示:
ButtomMenuActivity.java:
復(fù)制代碼 代碼如下:

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);
// 創(chuàng)建一個PopuWidow對象
popup = new PopupWindow(view, LinearLayout.LayoutParams.MATCH_PARENT,320);
// 設(shè)置焦點在彈窗上
popup.setFocusable(true);
// 設(shè)置允許在外點擊消失
popup.setOutsideTouchable(true);
// 設(shè)置彈窗消失事件監(jiān)聽
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:
復(fù)制代碼 代碼如下:

<?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:
復(fù)制代碼 代碼如下:

<?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="好友動態(tài)"
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="與我相關(guān)"
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="應(yīng)用"
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只是仿著來玩,可能有些地方寫得不怎么規(guī)范。如果有什么問題,希望大家可以指出,謝謝!

相關(guān)文章

  • Android面向單Activity開發(fā)示例解析

    Android面向單Activity開發(fā)示例解析

    這篇文章主要為大家介紹了Android面向單Activity開發(fā)示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • android仿iphone主題效果的主菜單

    android仿iphone主題效果的主菜單

    這篇文章主要為大家詳細(xì)介紹了android仿iphone主題效果的主菜單,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • Flutter?Widget開發(fā)之Focus組件圖文詳解

    Flutter?Widget開發(fā)之Focus組件圖文詳解

    這篇文章主要為大家介紹了Flutter?Widget開發(fā)之Focus組件圖文詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12
  • Android利用ViewPager實現(xiàn)用戶引導(dǎo)界面效果的方法

    Android利用ViewPager實現(xiàn)用戶引導(dǎo)界面效果的方法

    這篇文章主要介紹了Android利用ViewPager實現(xiàn)用戶引導(dǎo)界面效果的方法,結(jié)合實例形式詳細(xì)分析了Android軟件功能界面的初始化、view實例化、動畫功能實現(xiàn)與布局相關(guān)技巧,需要的朋友可以參考下
    2016-07-07
  • android實現(xiàn)下拉菜單三級聯(lián)動

    android實現(xiàn)下拉菜單三級聯(lián)動

    這篇文章主要為大家詳細(xì)介紹了android實現(xiàn)下拉菜單三級聯(lián)動,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • 基于android樣式與主題(style&theme)的詳解

    基于android樣式與主題(style&theme)的詳解

    本篇文章是對android中的樣式與主題(style&theme)進行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • Android Mms之:短信發(fā)送流程(圖文詳解)

    Android Mms之:短信發(fā)送流程(圖文詳解)

    本篇文章是對Android中的短信發(fā)送流程進行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • Flutter投票組件使用方法詳解

    Flutter投票組件使用方法詳解

    這篇文章主要為大家詳細(xì)介紹了Flutter投票組件的使用方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • Android 單雙擊實現(xiàn)的方法步驟

    Android 單雙擊實現(xiàn)的方法步驟

    這篇文章主要介紹了Android 單雙擊實現(xiàn)的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • Adnroid打造通用的帶進度條的WebView

    Adnroid打造通用的帶進度條的WebView

    這篇文章主要為大家詳細(xì)介紹了Adnroid打造通用的帶進度條的WebView的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09

最新評論