Android 接喜马拉雅电台接口(2)------功能实现篇

在上一篇博客中我们已经讲解了喜马拉雅开发前的配置,上一张有一个点没有提,在这在补充一下,喜马拉雅申请key 的时候需要签名就是你的SHA1 的值,不知道怎么获取SHA1的值的小伙伴们,可以去其他博客上看下,我就不详细的讲解了,现在我们来进入我们的正文实现喜玛拉雅的功能。

     首先上一张效果图给大家看下

  





  上面是我们這个项目要实现后的图,首先我们来分析下布局,上面是一个可以滑动的类别布局,类别下面是展示类别后的标签类,点击标签后在出现图二,点击图二的条目,我们开始播放这个条目。


由于在代码上注释的很清楚,我就直接把代码放上去了,不懂的地方参照下注释理解下就懂了,


MainActivity.class

package com.testopensourceapplication.tingproject;

import android.os.Bundle;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.util.TypedValue;
import android.view.Gravity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.GridView;
import android.widget.HorizontalScrollView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;

import com.ximalaya.ting.android.opensdk.constants.DTransferConstants;
import com.ximalaya.ting.android.opensdk.datatrasfer.CommonRequest;
import com.ximalaya.ting.android.opensdk.datatrasfer.IDataCallBack;
import com.ximalaya.ting.android.opensdk.model.PlayableModel;
import com.ximalaya.ting.android.opensdk.model.album.AlbumList;
import com.ximalaya.ting.android.opensdk.model.category.Category;
import com.ximalaya.ting.android.opensdk.model.category.CategoryList;
import com.ximalaya.ting.android.opensdk.model.live.radio.Radio;
import com.ximalaya.ting.android.opensdk.model.tag.Tag;
import com.ximalaya.ting.android.opensdk.model.tag.TagList;
import com.ximalaya.ting.android.opensdk.model.track.Track;
import com.ximalaya.ting.android.opensdk.model.track.TrackList;
import com.ximalaya.ting.android.opensdk.player.XmPlayerManager;
import com.ximalaya.ting.android.opensdk.player.service.IXmPlayerStatusListener;
import com.ximalaya.ting.android.opensdk.player.service.XmPlayerException;

import net.tsz.afinal.FinalBitmap;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class MainActivity extends AppCompatActivity {
    public String TAG ="MainActivity";
    public HorizontalScrollView ting_header;
    private CommonRequest mXimalaya;
    private String mAppSecret = "c4fce2b85e8f354e071904eb8f595795";
    private XmPlayerManager mPlayerManager;
    private boolean mOnDmandLoading = false;//是否加载点播模块
    private int mPageId = 1;
    private int index = 0;
    private AlbumList mAlbumList;//标签下的专辑列表
    private Category mCategory = null;//点播类别
    FinalBitmap mFinalBitmap;
    /**
     * 更改textview状态
     */
    List<TextView> textViews = new ArrayList<TextView>();

    LinearLayout ting_choose;   //动态生成的存放类别的布局
    GridView mTagGridView;   //类别下的标签展示列表
    ListView mTingTrackListView;    //  标签后的listView展示布局


    private List<Category> mCategoryList = new ArrayList<Category>();//类别列表  有声书 、音乐、娱乐。。。。。

    private List<Tag> mTagList = new ArrayList<Tag>();//类别下的标签列表    悬疑、 言情  幻想  等

    private List<Track> mTrackList = new ArrayList<Track>();//标签后   专辑下的声音列表


    private TingTagAdapter mTingTagAdapter;//类别列表后的 标签适配器
     private TingTracksAdapter mTingTrackAdapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initData();
        initView();
        CategoryData();
    }

    //初始化喜马拉雅
    public void initData(){
        mFinalBitmap = FinalBitmap.create(MainActivity.this);
        mFinalBitmap.configLoadfailImage(R.drawable.ting_default_icon);
        mFinalBitmap.configLoadingImage(R.drawable.ting_default_icon);

        mXimalaya = CommonRequest.getInstanse();
        mXimalaya.init(MainActivity.this, mAppSecret);

        mXimalaya.setDefaultPagesize(50);
        mPlayerManager = XmPlayerManager.getInstance(this);
        mPlayerManager.init();
        mPlayerManager.addPlayerStatusListener(mPlayerStatusListener);
    }

    //初始化控件
    public void initView(){
        ting_header = (HorizontalScrollView) findViewById(R.id.ting_header);
        ting_choose = (LinearLayout) findViewById(R.id.ting_choose);    //存放分类的布局
        mTagGridView = (GridView) findViewById(R.id.gv_tag_list);    //类别下的展示列表
        mTingTrackListView = (ListView) findViewById(R.id.gv_category_item_list);

        mTingTagAdapter = new TingTagAdapter(mTagList, MainActivity.this);
        mTagGridView.setAdapter(mTingTagAdapter);


       //设置类别声音适配器
        mTingTrackAdapter = new TingTracksAdapter(mTrackList, MainActivity.this, mFinalBitmap, mPlayerManager);
        mTingTrackListView.setAdapter(mTingTrackAdapter);

    }


    //点击事件
    public void CategoryData(){
        loadOnDamendCategory();

        //标签的点击事件  //如点击  悬疑  言情  之类的
        //点击标签时掩藏  头部(分类的布局),标签的布局
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值