日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

android 4个点矫正不规则矩形_Android使用FragmentTabHost实现中间按钮凸出效果

發布時間:2024/9/15 Android 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 4个点矫正不规则矩形_Android使用FragmentTabHost实现中间按钮凸出效果 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
目前很多app主頁都是由幾個tab頁組成,所以我們開發app的時候一般都會涉及到主頁tab的切換實現。常用的主頁tab切換實現可以用viewpage和FragmentActivity組合,用普通Button/TextView/RadioButton等等和FragmentTransaction的add、replace、remove、hide和show方法組合,以及Android官方框架FragmentTabHost。前面兩種實現起來會比較容易一點,但是,當你的底部菜單凹凸不規則或者 是要嵌入其它標簽(比如消息提示功能)的時候,那 FragmentTabHost 實現起來就更容易了。FragmentTabHost 作為 Android 4.0 版本的控件當然優點多多,已被項目廣泛使用,Android 5.0版本又推出TabLayout+ViewPager實現多頁切換的效果。此處主要講使用FragmentTabHost 實現中間按鈕凸出效果,說起FragmentTabHost,相信小伙伴們用得比較多也比較熟悉的是用其來實現類似如下圖所示的tab效果吧!

上圖效果實現起來也是比較簡單的,今天我要記錄的是使用FragmentTabHost 實現如下圖所示的效果:

可能會有很多大神看完效果圖 噗呲 一笑,覺得小菜一碟。那么這些大神可以繞道通行啦!下面直接進入正題,上代碼干貨:1.首先是activity_main.xml布局文件引用v4包的FragmentTabHost控件,FragmentTabHost 要想讓中間按鈕凸出需根據需求再拉控件覆蓋原本中間按鈕,其他按鈕凸出同理 android:layout_width="match_parent" android:layout_height="match_parent"> xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/tabhost" android:layout_width="match_parent" android:layout_height="match_parent"> android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> android:id="@android:id/tabcontent" android:layout_width="0dp" android:layout_height="0dp" android:layout_weight="0" /> android:id="@+id/realtabcontent" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" /> android:id="@android:id/tabs" android:layout_width="match_parent" android:layout_height="45dp" //tab的高度 android:layout_weight="0" android:background="#F5F5F5" android:divider="#00000000" android:gravity="center" android:orientation="horizontal" /> android:id="@+id/main_image_center" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerInParent="true" android:layout_marginBottom="17dp" android:src="@drawable/circle" /> android:id="@+id/main_tv_final" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:layout_centerInParent="true" android:layout_marginBottom="2dp" android:text="金融圈" android:textColor="@color/main_tabtextcolor" android:textSize="12sp" />如果tab在頂部,只需要把xml中的TabWidget放在@android:id/tabcontent上即可2.搞定了xml接下來就是代碼部分了,先新建片段(根據自己需求確定新建幾個片段)此處我每個片段區別比較大,復用性差,所以5個tab新建了5個片段
HomeFragment.class, MessageFragment.class,?CenterFragment.class, FinancialFragment.class,MineFragment.class3.接下來最重要的代碼類MainActivity.java:public class MainActivity extends FragmentActivity implements OnClickListener { private FragmentTabHost mTabHost; //mTabHost控件 private Class[] clas = new Class[] { HomeFragment.class, MessageFragment.class, CenterFragment.class, FinancialFragment.class, MineFragment.class }; //片段 private int images[] = new int[] {R.drawable.tab_1_selector, R.drawable.tab_2_selector,1, R.drawable.tab_4_selector, R.drawable.tab_5_selector }; //tab按鈕 選中和不選中狀態 private TextView mBottom_center; //中間按鈕TextView private ImageView main_image_center; //中間按鈕ImageView @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initUI(); } public void initUI() { //底部中間按鈕控件 main_image_center = (ImageView) findViewById(R.id.main_image_center); main_image_center.setImageResource(R.drawable.nav_button_finance_default); //底部中間按鈕TextView mBottom_center = (TextView) findViewById(R.id.main_tv_final); //設置監聽 main_image_center.setOnClickListener(this); mBottom_center.setOnClickListener(this); String[] tabIndicatorArray = getResources().getStringArray(R.array.arr_tab_indicator); mTabHost = (FragmentTabHost) findViewById(android.R.id.tabhost); mTabHost.setup(this, getSupportFragmentManager(), R.id.realtabcontent); LayoutInflater inflater = getLayoutInflater(); for (int i = 0; i < images.length; i++) { View indicatorView = inflater.inflate(R.layout.g_list_item_viewpagerindicator, null); TextView tvIndicator = (TextView) indicatorView.findViewById(R.id.tv_title_indicator); tvIndicator.setText(tabIndicatorArray[i]); ImageView imageView = (ImageView) indicatorView.findViewById(R.id.ima_indicator); imageView.setImageResource(images[i]); //tabhost添加tab切換事件 tab0-tab4 mTabHost.addTab(mTabHost.newTabSpec("tab"+i).setIndicator(indicatorView), clas[i], null); mTabHost.setOnTabChangedListener(new OnTabChangeListener() { @Override public void onTabChanged(String tabId) { switch (tabId) { case "tab2": //獲取中間按鈕點擊事件 設置覆蓋控件 main_image_center.setImageResource(R.drawable.nav_button_finance_selected); mBottom_center.setTextColor(Color.parseColor("#ffd38a")); break; default: //其他四個按鈕 main_image_center.setImageResource(R.drawable.nav_button_finance_default); mBottom_center.setTextColor(Color.parseColor("#b2b2b2")); break; } } }); } } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.main_image_center: mTabHost.setCurrentTab(2); break; default: break; } } }3.res文件夾下新建一個color文件夾,main_tabtextcolor.xml的代碼為:<?xml version="1.0" encoding="utf-8"?> 4.drawable文件夾下的tab_1_selector.xml、tab_2_selector.xml、tab_3_selector.xml、tab_4_selector.xml、tab_5_selector.xml代碼<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_selected="true" android:drawable="@drawable/nav_button_home_selected" /> <item android:state_pressed="true" android:drawable="@drawable/nav_button_home_selected" /> <item android:state_selected="false" android:drawable="@drawable/nav_button_home_default" /> selector> 源碼地址:https://github.com/LXLYHM/Demo_FragmentTabhost到這里就結束啦。往期精彩回顧:
  • Android實現短信驗證碼自動填充功能

  • Android仿echo精美彈幕功能

  • Android實現頭像重疊排列功能

  • Android仿QQ個性標簽功能

  • Android仿QQ側滑刪除的功能

總結

以上是生活随笔為你收集整理的android 4个点矫正不规则矩形_Android使用FragmentTabHost实现中间按钮凸出效果的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美亚洲免费 | 深夜福利成人 | 9l蝌蚪porny中文自拍 | 欧美一级片黄色 | 欧美不卡在线视频 | 人妻一区二区三区 | av日韩一区二区 | 爆操老女人 | 欧美成人一二三 | 国内自拍一区 | 亚洲黑丝在线 | 韩国三级hd中文字幕叫床浴室 | 日韩精品一线二线三线 | 午夜影院在线播放 | 农村妇女一区二区 | 冈本视频在线观看 | 国产经典久久 | 日韩中文一区二区 | 日韩国产成人在线 | 欧洲黄色片 | 成人免费在线观看 | www.88av| 精品视频久久久久久久 | 欧美成人精品一区二区三区 | 欧美自拍色图 | 亚洲精品日韩综合观看成人91 | 色播五月激情五月 | 精品久久精品久久 | 51精品国产人成在线观看 | 久久久久久影视 | 国产超碰自拍 | se日韩| av小说在线观看 | 韩国一级淫片 | 成年人免费毛片 | 亚洲一二三四视频 | 在线观看免费中文字幕 | 最近中文字幕第一页 | 欧美日韩人妻精品一区二区 | 中文字幕人妻一区二区三区 | 中文字幕xxx | 青青草手机视频 | 手机看片日本 | 懂色av中文一区二区三区天美 | 欧美成人福利视频 | 男女在楼梯上高潮做啪啪 | 久色影视 | 国产精品无码一区二区三 | 国产成人精品无码免费看夜聊软件 | 在线se | 一区二区三区四区国产精品 | 欧美做爰全过程免费看 | 欧美性精品 | 日韩大片免费观看视频播放 | 久久久久久久久蜜桃 | 欧美最猛黑人xxxx | 中国女人内谢69xxxx免费视频 | 日本簧片在线观看 | 黄色av免费播放 | 日韩一区二区在线视频 | 色婷婷综合成人av | 国产亚洲成人精品 | 免费在线视频你懂的 | 91青青操| 日本中文字幕二区 | 亚洲小说图片区 | 亚洲1页| 欧美精品成人久久 | 蜜臀视频在线播放 | 日韩裸体视频 | 国产成人毛片 | 小泽玛利亚一区二区三区 | 欧美成人午夜视频 | 老色驴综合网 | 久久精品国产亚洲av高清色欲 | 97香蕉超级碰碰久久免费软件 | 欧美精品免费一区二区三区 | 高清国产一区二区三区四区五区 | 久久综合一区二区 | 欧美激情久久久 | 日韩免费大片 | 欧洲影院 | 自拍偷拍中文字幕 | 我要看免费的毛片 | 特黄做受又粗又大又硬老头 | www.youjizz国产| 纯爱无遮挡h肉动漫在线播放 | 日韩欧美视频一区二区 | 一级作爱片| 黄色国产小视频 | asian日本肉体pics | 蜜桃av影视 | 欧美视频你懂的 | 色爱色| 中文字幕有码无码人妻av蜜桃 | 国产一区欧美一区 | 美女性生活视频 | 免费视频色 | 欧美一级免费看 |