扣丁音乐(三)——UI框架的实现

本文出自:http://blog.csdn.net/dt235201314/article/details/51341057

一丶PagerSlidingTabStrp运用

扣丁音乐1.0前部分(gif图大小限制)演示:

视频教程中是直接将PagerSlidingTabStrp例子的主页面拿来做主页面,并对相应用到的地方做出修改

修改一:

activity_main.xml

保留如下,其余控件删除

<com.astuetz.PagerSlidingTabStrip
    android:id="@+id/tabs"
    android:layout_width="match_parent"
    android:layout_height="48dip"
    android:background="@drawable/background_tabs" />

<android.support.v4.view.ViewPager
    android:id="@+id/pager"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/tabs"
    tools:context=".MainActivity" />

修改二:

MainActivity.java

默认颜色

private int currentColor = 0xFFC74B46;

滑动项名字

private final String[] TITLES = { "我的音乐", "音乐馆" };

滑动Fragment相关加载(作者目前阶段的)

@Override
   public Fragment getItem(int position) {

      if(position==0){
         if(myMusicFragment==null){
            myMusicFragment = MyMusicFragment.newInstance();
         }
         return myMusicFragment;
      }else if(position==1){
         if(netMusicFragment==null){
            netMusicFragment = NetMusicFragment.newInstance();
         }
         return netMusicFragment;
      }
      return null;
   }

}

二丶MymusicFragment

由演示可以看到我的页面比视频上多一个跳转页,并没有在MymusicFragment实现歌曲加载而是通过点击跳转,其实也就多一个页面。

MymusicFragment.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/skin2">

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:background="#10ffffff">

        <LinearLayout
            android:id="@+id/four_module"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dp"
            android:layout_marginBottom="20dp"
            android:orientation="horizontal">

            <LinearLayout
                android:id="@+id/ll_local_songs"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:gravity="center"
                android:orientation="vertical">

                <ImageView
                    android:id="@+id/iv_local_songs"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/local_songs"/>

                <TextView
                    android:id="@+id/tv_local_songs"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/local_songs"
                    android:paddingTop="10dp"
                    android:textColor="@color/white"
                    android:textStyle="bold"/>

                <TextView
                    android:id="@+id/tv_songs_count"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="12"
                    android:paddingTop="5dp"
                    android:textColor="@color/white"/>

            </LinearLayout>

            <LinearLayout
                android:id="@+id/ll_already_download"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="vertical"
                android:layout_weight="1"
                android:gravity="center">

                <ImageView
                    android:id="@+id/iv_already_download"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/already_download"/>

                <TextView
                    android:id="@+id/tv_already_download"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/already_download"
                    android:paddingTop="10dp"
                    android:textColor="@color/white"
                    android:textStyle="bold"/>

                <TextView
                    android:id="@+id/download_count"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="15"
                    android:paddingTop="5dp"
                    android:textColor="@color/white"/>

            </LinearLayout>

            <LinearLayout
                android:id="@+id/ll_recent_played"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="vertical"
                android:layout_weight="1"
                android:gravity="center">

                <ImageView
                    android:id="@+id/iv_recent_played"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/recent_played"/>

                <TextView
                    android:id="@+id/tv_recent_played"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/recent_played"
                    android:paddingTop="10dp"
                    android:textColor="@color/white"
                    android:textStyle="bold"/>

                <TextView
                    android:id="@+id/tv_download_count"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="16"
                    android:paddingTop="5dp"
                    android:textColor="@color/white"/>

            </LinearLayout>

            <LinearLayout
                android:id="@+id/ll_settings"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:gravity="center"
                android:orientation="vertical">

                <ImageView
                    android:id="@+id/iv_settings"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/settings"/>

                <TextView
                    android:id="@+id/tv_settings"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/settings"
                    android:paddingTop="10dp"
                    android:textColor="@color/white"
                    android:textStyle="bold"/>
            </LinearLayout>
        </LinearLayout>
    </RelativeLayout>

</RelativeLayout>

MymusicFragment.java

public class MyMusicFragment extends Fragment implements View.OnClickListener{
    private LinearLayout layout_local_songs;
    private MainActivity mainActivity;
    /**
     * 初始化myMusicFragment,在MainActivity中调用
     * @return
     */
    public static MyMusicFragment newInstance(){
        MyMusicFragment myMusicFragment = new MyMusicFragment();
        return myMusicFragment;
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.my_music_fragment,null);
        layout_local_songs = (LinearLayout)view.findViewById(R.id.ll_local_songs);
        layout_local_songs.setOnClickListener(this);
        return view;
    }

    @Override
    public void onClick(View view) {
        switch (view.getId()){
            case R.id.ll_local_songs:
                Intent intent = new Intent(getActivity(),LocalSongsActivity.class);
                startActivity(intent);
                break;
        }
    }
}

这里由于目前功能只实现这么多,数据写的是虚拟的,也只完成对本地音乐列表的跳转

时间: 2024-10-24 20:53:43

扣丁音乐(三)——UI框架的实现的相关文章

扣丁音乐(四)——本地音乐加载

本文出自:http://blog.csdn.net/dt235201314/article/details/51341078 一丶本地音乐加载相当于就是listVIew应用 扣丁音乐1.0前部分(gif图大小限制)演示: 实体类Mp3Info(歌曲相关数据及get和set方法) public class Mp3Info { private long id; private String title;//歌名 private String artist;//艺术家 private String a

扣丁音乐(五)——service实现歌曲播放功能

本文出自:http://blog.csdn.net/dt235201314/article/details/51341104 一丶MediaPlayer 参考博文加强:扣丁学堂--MediaPlay(音乐播放) 二丶演示 三丶创建MusicService服务 这里贴出了后面涉及到的部分代码 /** * 实现功能: * 1.点击列表上的某首歌播放 * 2.点击播放按钮,从暂停转为播放状态 * 3.点击暂停按钮,从播放状态转为暂停状态 * 4.上一首 * 5.下一首 * 6.播放进度显示 * 7.播

游戏UI框架设计(三) : 窗体的层级管理

游戏UI框架设计(三) ---窗体的层级管理 UI框架中UI窗体的"层级管理",最核心的问题是如何进行窗体的显示管理.窗体(预设)的显示我们前面定义了三种类型: 普通.隐藏其他.反向切换.代码如下: "普通显示"模式允许多个窗体同时显示,这种类型应用最多.例如RPG中的主城界面(见下图). "隐藏其他界面" 模式一般应用于全局性的窗体.我们在开发此类窗体时,为了减少UI渲染压力.提高Unity渲染效率,则设置被覆盖的窗体为"不可见&qu

H+后台主题UI框架---整理(三)

这里面介绍下H+后台主题UI框架里面插件的应用,不过都是最最简单最初级的功能.主要有日历插件,input单选多选(icheck)插件,input下拉搜索(chosen)插件. 一.日历插件 有如下几种应用的形式: (一) 1.首先,需要引入laydate.js,而且,只需要引入js即可. 2.在script里面粘贴如下代码: [外部js调用]<input id="hello" class="laydate-icon"> //是在html里面的内容,也就是

常用响应式 Web UI 框架

1. Bootstrap Bootstrap是快速开发Web应用程序的前端工具包.它是一个CSS和HTML的集合,它使用了最新的浏览器技术,给你的Web开发提供了时尚的版式,表单,buttons,表格,网格系统等等.官方网站: http://twitter.github.com/bootstrap/github: https://github.com/twitter/bootstrap 2. Foundation Foundation 是一个易用.强大而且灵活的框架,用于构建基于任何设备上的 W

Unity3D通用UI框架

目标:编写一个简单通用UI框架用于管理页面和完成导航跳转最终的实现效果请拉到最下方查看 框架具体实现的功能和需求 加载,显示,隐藏,关闭页面,根据标示获得相应界面实例 提供界面显示隐藏动画接口 单独界面层级,Collider,背景管理 根据存储的导航信息完成界面导航 界面通用对话框管理(多类型Message Box) 便于进行需求和功能扩展(比如,在跳出页面之前添加逻辑处理等) 编写UI框架意义 打开,关闭,层级,页面跳转等管理问题集中化,将外部切换等逻辑交给UIManager处理 功能逻辑分散

游戏UI框架设计(二) : 最简版本设计

最简版本设计 --最简版本设计 为降低难度决定先讲解一个最简版本,阐述UI框架的核心设计理念.这里先定义三个核心功能: 1:UI窗体的自动加载功能. 2:缓存UI窗体. 3:窗体生命周期(状态)管理. UI框架设计主要目的,就是尽可能的完成一些与具体游戏功能逻辑无关的一些底层事务性的功能实现.这些功能最好是自动或者是半自动的实现,无须客户程序(调用框架的程序)过多处理与关心. 对于以上功能,笔者定义了UI框架的相关四个核心类: BaseUIForms    基础UI窗体脚本(父类,其他窗体都继承

Unity3D 搭建优雅的UI框架

为什么要使用UI框架?直接使用NGUI或UGUI一拖一拉直接搭载出界面不就行了? 我相信很多小白,包括我在刚学习Unity3D UI的时候都这样想过. 我的第一款款Unity2D游戏<山地赛车>,使用的就是NGUI搭载界面. 弱联网手游一般都没什么复杂的界面,我也是很轻松花一天就把界面搭载好了,看起来好挺好看的,还花了不少时间做动态效果. 界面搭载好后,开始开发游戏内容,这下问题开始来了: 1.如何实现界面间的沟通?例如点击返回按钮,返回上一个界面,点击背包系统,弹出背包. 2.如何实现界面与

ASP.NET MVC搭建项目后台UI框架一

准备做一个新的项目,从网页设计师手中拿到了html静态页面(没有一行js),但是都一个个零散的界面,我需要做的是: 1.  把这些零散的html界面连接起来 2.  自己编写js或者jquery实现菜单效果 3.  把html页面集成在我们的MVC Razor视图中 本想着使用第三方的UI框架 如Jquery EasyUI.ExtJs.MiniUI等来搭建框架,但是上面要求必须做得和美工给的html页面样式一致,不能用这些比较复杂的UI框架.作为非前端工程师,我只有硬着头皮上了.经过差不多2天的