仿QQ音乐下载歌曲头部导航
来源:互联网 发布:h5页面设计软件 编辑:程序博客网 时间:2024/06/10 00:14
话说这是博主第一次发文,有点小激动,俗话说得好:好记性不如烂笔头,楼主尚处于菜鸟阶段,希望能把自己学到的东西分享给大家,毕竟以前每次有问题了都是来CSDN各种狂搜,也从很多大神的blog里面学到了很多,这种精神必须发扬下去,好了不多说了。下面介绍本篇blog的内容。
头部导航现在非常常见,但是笔者觉得QQ音乐下载界面的导航做的很简洁很美观,其他应用也有很多类似的东西,据说是从ios里面仿过来,笔者就不清楚了~
原理是利用fragment+radiobutton,想必大家一看就明白,废话不多说代码贴上。
布局文件main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".Warning" > <RadioGroup android:id="@+id/radiogroup_change" android:layout_width="fill_parent" android:layout_height="35dp" android:layout_gravity="bottom" android:layout_marginLeft="20dp" android:layout_marginRight="20dp" android:layout_marginTop="20dp" android:background="@drawable/radio_bg" android:gravity="center_vertical" android:orientation="horizontal" > <RadioButton android:id="@+id/radiobut_left" style="@style/left" android:layout_height="fill_parent" android:checked="true" android:drawableTop="@null" android:text="已下载" /> <RadioButton android:id="@+id/radiobut_right" style="@style/right" android:layout_height="fill_parent" android:layout_weight="1" android:drawableTop="@null" android:text="正在下载" /> </RadioGroup> <View android:layout_width="fill_parent" android:layout_height="0.3dip" android:layout_marginTop="5dip" android:background="#D5D5D5"/> <FrameLayout android:id="@+id/content" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_above="@+id/radiogroup_change" android:layout_marginTop="5dp" /></LinearLayout>
radiobbutton我没有用任何图片,边框是用corners实现的。下面是radiobutton的style
<style name="left"> <item name="android:textSize">15sp</item> <item name="android:textColor">@drawable/text_ic_tab_selector</item> <item name="android:ellipsize">marquee</item> <item name="android:gravity">center</item> <item name="android:background">@drawable/radio_left</item> <item name="android:paddingTop">5dip</item> <item name="android:layout_width">fill_parent</item> <item name="android:layout_height">wrap_content</item> <item name="android:button">@null</item> <item name="android:singleLine">true</item> <item name="android:drawablePadding">2.0dip</item><pre name="code" class="html"> <!-- 顶部选项卡背景 --> <color name="radio_btn">#FFFFFF</color> <color name="radio_btn_click">#14BD5A</color>
<item name="android:layout_weight">1.0</item> </style> <style name="right"> <item name="android:textSize">15sp</item> <item name="android:textColor">@drawable/text_ic_tab_selector</item> <item name="android:ellipsize">marquee</item> <item name="android:gravity">center</item> <item name="android:background">@drawable/radio_right</item> <item name="android:paddingTop">5dip</item> <item name="android:layout_width">fill_parent</item> <item name="android:layout_height">wrap_content</item> <item name="android:button">@null</item> <item name="android:singleLine">true</item> <item name="android:drawablePadding">2.0dip</item> <item name="android:layout_weight">1.0</item> </style>由于文字颜色和背景色点击时都会变化,所以引用了selector实现,下面是文字和背景的selector ,背景用了两个selector,其他的都一模一样只是边框的圆角不一样,一个是左边圆角一个是右边圆角,点击效果大家可以随意加,笔者这里偷懒了没有加。
text_ic_tab_selector.xml:
<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android" > <!-- 对item的不通状态设置不同的图片,第一行是 他的状态被选中&&他没有被按下的状态就用这个图片--> <item android:state_selected="true" android:state_pressed="false" android:color="#FFFFFF"/> <!-- 被checked的时候并且没有按下 --><item android:state_checked="true" android:state_pressed="false" android:color="#FFFFFF"/><item android:color="#14BD5A"/></selector>
radio_left.xml:
<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_enabled="true" android:state_checked="true"> <shape> <gradient android:endColor="@color/radio_btn_click" android:startColor="@color/radio_btn_click" /> <corners android:bottomLeftRadius="5.0dip" android:bottomRightRadius="0.0dip" android:radius="2.0dip" android:topLeftRadius="5.0dip" android:topRightRadius="0.0dip" /> <stroke android:width="1dp" android:color="@color/radio_btn_click" /> </shape> </item> <item> <shape> <gradient android:endColor="@color/radio_btn" android:startColor="@color/radio_btn"/> <corners android:bottomLeftRadius="5.0dip" android:bottomRightRadius="0.0dip" android:radius="2.0dip" android:topLeftRadius="5.0dip" android:topRightRadius="0.0dip" /> <stroke android:width="1dp" android:color="@color/radio_btn_click" /> </shape> </item> </selector>
radio_right.xml:
<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_enabled="true" android:state_checked="true"> <shape> <gradient android:endColor="@color/radio_btn_click" android:startColor="@color/radio_btn_click" /> <corners android:bottomLeftRadius="0.0dip" android:bottomRightRadius="5.0dip" android:radius="2.0dip" android:topLeftRadius="0.0dip" android:topRightRadius="5.0dip" /> <stroke android:width="1dp" android:color="@color/radio_btn_click" /> </shape> </item> <item> <shape> <gradient android:endColor="@color/radio_btn" android:startColor="@color/radio_btn"/> <corners android:bottomLeftRadius="0.0dip" android:bottomRightRadius="5.0dip" android:radius="2.0dip" android:topLeftRadius="0.0dip" android:topRightRadius="5.0dip" /> <stroke android:width="1dp" android:color="@color/radio_btn_click" /> </shape> </item> </selector>
color.xml:
<!-- 顶部选项卡背景色 --> <color name="radio_btn">#FFFFFF</color> <color name="radio_btn_click">#14BD5A</color>下面是activity的代码了,因为本人使用了KJFrameForAndroid,所以大家要想copy我的代码需要去github上面下载这个框架,把jar包引用到项目就行了,具体使用上面有介绍,给大家贴上连接:https://github.com/kymjs/KJFrameForAndroid。
package com.gx.erp_android;import org.kymjs.aframe.ui.BindView;import org.kymjs.aframe.ui.activity.KJFragmentActivity;import org.kymjs.aframe.ui.fragment.BaseFragment;import android.os.Bundle;import android.annotation.SuppressLint;import android.app.ActionBar;import android.app.Activity;import android.view.Menu;import android.view.View;import android.view.Window;import android.widget.Button;import android.widget.RadioButton;public class Warning extends KJFragmentActivity {@BindView(id = R.id.radiobut_left, click = true)public RadioButton radio_left;@BindView(id = R.id.radiobut_right, click = true)private RadioButton radio_right;private Button back;private BaseFragment view_list = new Warning_list();// 第一个界面private BaseFragment view_rili = new Warning_rili(); //第二个界面public ActionBar actionBar;public Warning() {setHiddenActionBar(true);}public void setRootView() {setContentView(R.layout.warning);}@SuppressLint("NewApi")@Overrideprotected void initWidget() {super.initWidget();actionBar = getActionBar(); changeFragment(new Warning_list());}@Overridepublic void widgetClick(View v) {super.widgetClick(v);switch (v.getId()) {case R.id.radiobut_left:changeFragment(view_list);break;case R.id.radiobut_right:changeFragment(view_rili);break;default:break;}}@Overridepublic void changeFragment(BaseFragment targetFragment) {changeFragment(R.id.content, targetFragment);}}
关键的是布局文件radiobutton的设计,切换的原理相信大家都很清楚了,初次发文,大家请多包涵。
0 0
- 仿QQ音乐下载歌曲头部导航
- QQ音乐中任何歌曲完全免费下载方法
- QQ音乐for mac~下载歌曲到本地
- 百度音乐接口下载歌曲
- 仿QQ音乐代码
- 仿QQ音乐动画
- QQ音乐爬虫程序详细解析(一)——歌曲下载模块
- 仿QQ导航菜单
- 仿QQ导航菜单
- 仿QQ导航菜单
- 仿QQ导航菜单
- android仿音乐引用锁屏切换音乐歌曲壁纸
- 仿QQ音乐播放器
- SlidingDrawer 偏移,仿QQ音乐
- QT仿QQ音乐界面
- 仿QQ音乐索引SlideBar
- ios音乐播放器-仿QQ音乐
- 仿新浪头部导航栏(附带图片)
- 关于Hibernate利用@DynamicInsert和@DynamicUpdate生成动态SQL语句 -- 如何提高效率
- “灾难恢复即服务”将DR希望转为具体计划
- java中的byte类型的取值范围是-128~127
- 单文件小型数据库的选择
- delphi——自定义事件的实现
- 仿QQ音乐下载歌曲头部导航
- IIS设置允许下载.exe文件解决方法
- SVN中branch的合并和打patch(1)
- UML类图
- cocos2d-x环境配置
- JQuery,ajax异步加载<select><option></option></select>多选框:
- 使用 /proc 文件系统来访问 Linux 内核的内容
- Redis自学笔记整理
- 如何挑选正确的DRaaS提供商?