木雨音乐 项目开发(三)主界面MainActivity

来源:互联网 发布:linux mysql5.7安装 编辑:程序博客网 时间:2024/04/29 19:34

MainActivity主界面

(项目代码已经基本完成,粘贴代码为完整代码)

木雨音乐 APP已在百度手机助手上架,有兴趣的朋友可以下载测试,下载地址:http://shouji.baidu.com/software/9785031.html

木雨音乐源码下载地址:http://download.csdn.net/detail/haoxue641/9610782

希望大家多提宝贵意见

实现功能与主要方法:

1、使用PagerSlidingTabStrip实现本地音乐与网络推荐之间的切换

2、返回键退出提示

3、菜单键

界面截图


MainActivity.java(主界面类)

CustomDialog.java(自定义对话框类)

activity_main.xml(主界面布局文件)

main_menu.xml(菜单项布局文件)

alert_dialog.xml(自定义对话框布局)

styles.xml(主题风格属性文件)

MuyuPlayerAPP.java(全局对象)


MainActivity.java代码如下

package com.haoxue.zixueplayer;import android.app.NotificationManager;import android.content.DialogInterface;import android.content.Intent;import android.content.SharedPreferences;import android.graphics.drawable.ColorDrawable;import android.graphics.drawable.Drawable;import android.graphics.drawable.LayerDrawable;import android.graphics.drawable.TransitionDrawable;import android.os.Build;import android.os.Bundle;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentManager;import android.support.v4.app.FragmentPagerAdapter;import android.support.v4.view.ViewPager;import android.util.TypedValue;import android.view.KeyEvent;import android.view.Menu;import android.view.MenuItem;import com.astuetz.PagerSlidingTabStrip;import com.haoxue.zixueplayer.utils.CustomDialog;/** * Activity * 由于本人艺术感太差,UI界面比较丑,请自行设计 */public class MainActivity extends BaseActivity implements DownloadDialogFragment.DownloadSuccessListener, MyMusicListFragment.SuccessListener {    private PagerSlidingTabStrip tabs;    private ViewPager pager;    private MyPagerAdapter adapter;    private Drawable oldBackground = null;    private int currentColor = 0x98000000;    private MyMusicListFragment myMusicListFragment;    private NetMusicListFragment netMusicListFragment;    public MuyuPlayerApp app;//取出全局对象 方便调用    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        app = (MuyuPlayerApp) getApplication();        setContentView(R.layout.activity_main);        tabs = (PagerSlidingTabStrip) findViewById(R.id.tabs);        pager = (ViewPager) findViewById(R.id.pager);        adapter = new MyPagerAdapter(getSupportFragmentManager());        pager.setAdapter(adapter);        final int pageMargin = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 4, getResources()                .getDisplayMetrics());        pager.setPageMargin(pageMargin);        tabs.setViewPager(pager);        initService();        changeColor(currentColor);    }    @Override    public void publish(int progress) {        //更新进度条    }    @Override    public void change(int position) {        //切换状态播放位置        if (pager.getCurrentItem() == 0) {            myMusicListFragment.loadData();            myMusicListFragment.changeUIStatusOnPlay(position);        } else if (pager.getCurrentItem() == 1) {        }    }    private void changeColor(int newColor) {        tabs.setIndicatorColor(newColor);        // change ActionBar color just if an ActionBar is available        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {            Drawable colorDrawable = new ColorDrawable(newColor);            Drawable bottomDrawable = getResources().getDrawable(R.drawable.actionbar_bottom);            LayerDrawable ld = new LayerDrawable(new Drawable[]{colorDrawable, bottomDrawable});            if (oldBackground == null) {                getActionBar().setBackgroundDrawable(ld);            } else {                TransitionDrawable td = new TransitionDrawable(new Drawable[]{oldBackground, ld});                getActionBar().setBackgroundDrawable(td);                td.startTransition(200);            }            oldBackground = ld;            getActionBar().setDisplayShowTitleEnabled(false);            getActionBar().setDisplayShowTitleEnabled(true);        }    }    @Override    public void downloadSuccessListener(String isDownloadSuccess) {        System.out.println("MainActivity.downloadSuccessListener = " + isDownloadSuccess);        if (isDownloadSuccess.length() > 0) {            //问题:下载完成后,确实通知媒体库更新了,但是马上初始化数据,可能媒体库还没有更新            //临时解决:ActionBar,添加一个刷新按钮            //更新本地音乐列表            myMusicListFragment.loadData();//初始化数据            myMusicListFragment.newInstance();//重新实例化一下本地音乐Fragment,加载新的数据        }    }    @Override    public void successListener(String isSuccess) {        //问题:删除完成后,确实通知媒体库更新了,但是马上初始化数据,可能媒体库还没有更新        //临时解决:ActionBar,添加一个刷新按钮        myMusicListFragment.loadData();//初始化数据        MyMusicListFragment.newInstance();//重新实例化一下本地音乐Fragment,加载新的数据    }    public class MyPagerAdapter extends FragmentPagerAdapter {        private final String[] TITLES = {getString(R.string.my_music), getString(R.string.net_music)};        public MyPagerAdapter(FragmentManager fm) {            super(fm);        }        @Override        public CharSequence getPageTitle(int position) {            return TITLES[position];        }        @Override        public int getCount() {            return TITLES.length;        }        @Override        public Fragment getItem(int position) {            if (position == 0) {                if (myMusicListFragment == null) {                    myMusicListFragment = MyMusicListFragment.newInstance();                }                return myMusicListFragment;            } else if (position == 1) {                if (netMusicListFragment == null) {                    netMusicListFragment = NetMusicListFragment.newInstance();                }                return netMusicListFragment;            }            return null;        }    }    //菜单项    @Override    public boolean onCreateOptionsMenu(Menu menu) {        getMenuInflater().inflate(R.menu.main_menu, menu);        return true;    }    public boolean onOptionsItemSelected(MenuItem item) {        Intent intent;        switch (item.getItemId()) {            case R.id.newMyMusic:                myMusicListFragment.loadData();//初始化数据                MyMusicListFragment.newInstance();//重新实例化一下本地音乐Fragment,加载新的数据                break;            case R.id.ilike:                intent = new Intent(this, MyLikeMusicListActivity.class);                startActivity(intent);                break;            case R.id.near_play:                intent = new Intent(this, PlayRecordListActivity.class);                startActivity(intent);                break;            case R.id.about:                intent = new Intent(this, AboutActivity.class);                startActivity(intent);                break;            case R.id.exit:                stopService(new Intent(this, PlayService.class));                exit();                break;        }        return true;    }    @Override    protected void onDestroy() {        super.onDestroy();        //保存当前播放的一些状态值        MuyuPlayerApp app = (MuyuPlayerApp) getApplication();        SharedPreferences.Editor editor = app.sp.edit();        editor.putInt("currentPosition", playService.getCurrentPosition());        editor.putInt("play_mode", playService.getPlay_mode());        editor.commit();    }    /**     * 按返回键弹出对话框确定退出     *///    @Override//    public boolean onKeyDown(int keyCode, KeyEvent event)//    {//        if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN )//        {//            // 创建退出对话框//            AlertDialog isExit = new AlertDialog.Builder(this).create();//            // 设置对话框标题//            isExit.setTitle("系统提示");//            // 设置对话框消息//            isExit.setMessage("确定要退出吗");//            // 添加选择按钮并注册监听//            isExit.setButton("取消", listener);//            isExit.setButton2("确定", listener);//            // 显示对话框//            isExit.show();////        }////        return false;////    }//    /**监听对话框里面的button点击事件*///    DialogInterface.OnClickListener listener = new DialogInterface.OnClickListener()//    {//        public void onClick(DialogInterface dialog, int which)//        {//            switch (which)//            {//                case AlertDialog.BUTTON_POSITIVE:// "确认"按钮退出程序////                    break;//                case AlertDialog.BUTTON_NEGATIVE:// "取消"第二个按钮取消对话框//                    exit();//                    break;//                default://                    break;//            }//        }//    };    /**     * 按返回键弹出对话框确定退出     */    @Override    public boolean onKeyDown(int keyCode, KeyEvent event) {        if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN) {            new CustomDialog.Builder(MainActivity.this)                    .setTitle(R.string.info)                    .setMessage(R.string.dialog_messenge)                    .setPositiveButton(R.string.confrim,                            new DialogInterface.OnClickListener() {                                @Override                                public void onClick(DialogInterface dialog, int which) {                                    exit();                                }                            }).setNeutralButton(R.string.cancel, null).show();            return false;        }        return false;    }    /**     * Notification管理     */    public NotificationManager mNotificationManager;    /**     * 初始化要用到的系统服务     */    private void initService() {        mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);    }}

CustomDialog.java代码如下

package com.haoxue.zixueplayer.utils;import android.app.Activity;import android.app.Dialog;import android.content.Context;import android.content.DialogInterface;import android.text.TextUtils;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.view.ViewGroup.LayoutParams;import android.widget.Button;import android.widget.FrameLayout;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.TextView;import com.haoxue.zixueplayer.R;/** * 自定义对话框类 * * @author wwj * */public class CustomDialog extends Dialog {   public CustomDialog(Context context) {      super(context);   }   public CustomDialog(Context context, int theme) {      super(context, theme);   }   public static class Builder {      private Context context;      private int mIcon = -1; // 提示图标      private CharSequence mTitle; // 提示标题      private CharSequence mMessage; // 提示内容      private CharSequence mPositiveButtonText; // 确定按钮文本      private CharSequence mNegativeButtonText; // 取消按钮文本      private CharSequence mNeutralButtonText; // 中间按钮文本      private boolean mCancelable = true; // 是否启用取消键      private int mViewSpacingLeft;      private int mViewSpacingTop;      private int mViewSpacingRight;      private int mViewSpacingBottom;      private boolean mViewSpacingSpecified = false;      // 提示内容View      private View mView;      // 各种触发事件      private OnClickListener mPositiveButtonClickListener,            mNegativeButtonClickListener, mNeutralButtonClickListener;      private OnCancelListener mCancelListener; // 取消键事件      private OnKeyListener mKeyListener; // 按键处理      public Builder(Context context) {         this.context = context;      }      public Builder setMessage(CharSequence message) {         this.mMessage = message;         return this;      }      public Builder setMessage(int message) {         this.mMessage = context.getText(message);         return this;      }      public Builder setTitle(int title) {         this.mTitle = context.getText(title);         return this;      }      public Builder setTitle(CharSequence title) {         this.mTitle = title;         return this;      }      public Builder setIcon(int icon) {         this.mIcon = icon;         return this;      }      public Builder setView(View view) {         this.mView = view;         mViewSpacingSpecified = false;         return this;      }      public Builder setView(View view, int left, int top, int right,                        int bottom) {         this.mView = view;         this.mViewSpacingLeft = left;         this.mViewSpacingTop = top;         this.mViewSpacingRight = right;         this.mViewSpacingBottom = bottom;         mViewSpacingSpecified = true;         return this;      }      public Builder setPositiveButton(int textId, final OnClickListener listener) {         this.mPositiveButtonText = context.getText(textId);         this.mPositiveButtonClickListener = listener;         return this;      }      public Builder setPositiveButton(String text, final OnClickListener listener) {         this.mPositiveButtonText = text;         this.mPositiveButtonClickListener = listener;         return this;      }      public Builder setNeutralButton(int textId,                              final OnClickListener listener) {         this.mNeutralButtonText = context.getText(textId);         this.mNeutralButtonClickListener = listener;         return this;      }      public Builder setNeutralButton(String text, final OnClickListener listener) {         this.mNeutralButtonText = text;         this.mNeutralButtonClickListener = listener;         return this;      }      public Builder setNegativeButton(int textId,                               final OnClickListener listener) {         this.mNegativeButtonText = context.getText(textId);         this.mNegativeButtonClickListener = listener;         return this;      }      public Builder setNegativeButton(String text,                               final OnClickListener listener) {         this.mNegativeButtonText = text;         this.mNegativeButtonClickListener = listener;         return this;      }      public Builder setCancelable(boolean cancelable) {         this.mCancelable = cancelable;         return this;      }      public Builder setOnCancelListener(OnCancelListener listener) {         this.mCancelListener = listener;         return this;      }      public Builder setOnKeyListener(OnKeyListener listener) {         this.mKeyListener = listener;         return this;      }      public CustomDialog create() {         LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);         final CustomDialog dialog = new CustomDialog(context, R.style.CustomDialog);         dialog.setCancelable(mCancelable);         //设置取消键事件         if(mCancelListener != null) {            dialog.setOnCancelListener(mCancelListener);         }         //设置键盘监听事件         if(mKeyListener != null) {            dialog.setOnKeyListener(mKeyListener);         }         //获取对话框布局         View layout = inflater.inflate(R.layout.alert_dialog, (ViewGroup)(((Activity)context).findViewById(R.id.parentPanel)));         layout.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));         //设置标题         ((TextView) layout.findViewById(R.id.alertTitle)).setText(mTitle);         //设置图标         if(mIcon != -1) {            ((ImageView) layout.findViewById(R.id.icon))                  .setBackgroundResource(mIcon);         }         int count = 0;         //设置确定按钮         if(setButton(layout, mPositiveButtonText, R.id.button1, dialog, mPositiveButtonClickListener)) count++;         // 设置拒绝按钮         if(setButton(layout, mNegativeButtonText, R.id.button2, dialog, mNegativeButtonClickListener)) count++;         // 设置中间按钮         if(setButton(layout, mNeutralButtonText, R.id.button3, dialog, mNeutralButtonClickListener)) count++;         if(count == 0) {            layout.findViewById(R.id.buttonPanel).setVisibility(View.GONE);         }         //一个按钮时,显示两边空间         if(count == 1) {            layout.findViewById(R.id.leftSpacer)                  .setVisibility(View.INVISIBLE);            layout.findViewById(R.id.rightSpacer).setVisibility(View.INVISIBLE);         }         //设置提示消息         if(!TextUtils.isEmpty(mMessage)) {            ((TextView)layout.findViewById(R.id.message))                  .setText(mMessage);         } else {            ((LinearLayout) layout.findViewById(R.id.contentPanel))                  .setVisibility(View.GONE);         }         //设置提示内容布局         if(mView != null) {            final FrameLayout customPanel = (FrameLayout) layout                  .findViewById(R.id.customPanel);            if(mViewSpacingSpecified) {               customPanel.setPadding(mViewSpacingLeft, mViewSpacingTop, mViewSpacingRight, mViewSpacingBottom);            }            customPanel.addView(mView);         } else {            ((FrameLayout) layout.findViewById(R.id.customPanel))                  .setVisibility(View.GONE);         }         dialog.setContentView(layout);         return dialog;      }      public CustomDialog show() {         CustomDialog dialog = create();         dialog.show();         return dialog;      }      private boolean setButton(View layout, CharSequence mPositiveButtonText, int id, final Dialog dialog, final OnClickListener listener) {         if(!TextUtils.isEmpty(mPositiveButtonText)) {            final Button button = (Button) layout.findViewById(id);            button.setText(mPositiveButtonText);            if(listener != null) {               button.setOnClickListener(new View.OnClickListener() {                  @Override                  public void onClick(View v) {                     listener.onClick(dialog, DialogInterface.BUTTON_POSITIVE);                  }               });            } else {               //默认事件为关闭对话框               button.setOnClickListener(new View.OnClickListener() {                  @Override                  public void onClick(View v) {                     dialog.cancel();                     dialog.dismiss();                  }               });            }            return true;         } else {            layout.findViewById(id).setVisibility(View.GONE);            return false;         }      }   }}

activity_main.xml代码如下

<RelativeLayout 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">    <com.astuetz.PagerSlidingTabStrip        android:id="@+id/tabs"        android:layout_width="match_parent"        android:layout_height="48dip" />    <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" /><FrameLayout    android:layout_width="match_parent"    android:layout_height="match_parent"    android:id="@+id/content"></FrameLayout></RelativeLayout>

main_menu.xml代码如下

<menu xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto">    <item        android:id="@+id/newMyMusic"        android:title="@string/newMyMusic"        android:orderInCategory="100"        android:icon="@android:drawable/ic_menu_rotate"        android:showAsAction="ifRoom"/>    <item        android:id="@+id/ilike"        android:orderInCategory="200"        android:title="@string/like_music"        app:showAsAction="ifRoom"        android:icon="@android:drawable/ic_menu_set_as"/>    <item        android:id="@+id/near_play"        android:orderInCategory="300"        android:title="@string/recently_music"        app:showAsAction="ifRoom"        android:icon="@android:drawable/ic_media_play"/>    <item        android:id="@+id/about"        android:orderInCategory="400"        android:title="@string/about"        app:showAsAction="ifRoom"        android:icon="@android:drawable/ic_media_play"/>    <item        android:id="@+id/exit"        android:orderInCategory="500"        android:title="@string/exit"        app:showAsAction="ifRoom"        android:icon="@android:drawable/ic_media_play"/></menu>

alert_dialog.xml代码如下

<?xml version="1.0" encoding="UTF-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:id="@+id/parentPanel"    android:layout_width="fill_parent"    android:layout_height="wrap_content"    android:orientation="vertical"    android:padding="3dip" >    <!-- 图标和标题 -->    <LinearLayout        android:id="@+id/topPanel"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:minHeight="45dip"        android:orientation="vertical" >        <LinearLayout            android:id="@+id/title_template"            android:layout_width="fill_parent"            android:layout_height="wrap_content"            android:layout_margin="3dip"            android:gravity="center_vertical"            android:orientation="horizontal" >            <ImageView                android:id="@+id/icon"                android:layout_width="20dp"                android:layout_height="20dp"                android:layout_gravity="top"                android:layout_margin="3dip"                android:src="@mipmap/ic_dialog" />            <com.android.internal.widget.DialogTitle                android:id="@+id/alertTitle"                style="@style/textAppearanceDialogWindowTitle"                android:layout_width="fill_parent"                android:layout_height="wrap_content"                android:ellipsize="end"                android:singleLine="true" />        </LinearLayout>        <ImageView            android:id="@+id/titleDivider"            android:layout_width="fill_parent"            android:layout_height="1dip"            android:layout_marginLeft="5dip"            android:layout_marginRight="5dip"            android:background="@color/dialog_line"            android:gravity="fill_horizontal"            android:scaleType="fitXY" />    </LinearLayout>    <!-- 显示内容消息 -->    <LinearLayout        android:id="@+id/contentPanel"        android:layout_width="fill_parent"        android:layout_height="0dp"        android:layout_margin="5dp"        android:layout_weight="1"        android:orientation="vertical" >        <ScrollView            android:id="@+id/scrollView"            android:layout_width="fill_parent"            android:layout_height="wrap_content"            android:padding="5dip"             >            <TextView                android:id="@+id/message"                style="@style/textAppearanceDialogWindowTitle"                android:layout_width="fill_parent"                android:layout_height="wrap_content"                android:padding="5dip" />        </ScrollView>    </LinearLayout>    <!-- 显示内容布局 -->    <FrameLayout        android:id="@+id/customPanel"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:layout_weight="1"        android:paddingBottom="5dip"        android:paddingTop="5dip" >    </FrameLayout>    <!-- 按钮 -->    <LinearLayout        android:id="@+id/buttonPanel"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:minHeight="50dip"        android:orientation="vertical" >        <LinearLayout            android:layout_width="fill_parent"            android:layout_height="wrap_content"            android:gravity="center_horizontal"            android:orientation="horizontal"            android:paddingLeft="2dip"            android:paddingRight="2dip"            android:paddingTop="4dip" >            <LinearLayout                style="@style/btn_dialog"                android:orientation="horizontal"                android:id="@+id/leftSpacer"                android:layout_width="0dip"                android:layout_height="wrap_content"                android:layout_weight="0.25"                android:visibility="gone" />            <Button                android:id="@+id/button1"                style="@style/btn_dialog"                android:layout_width="0dip"                android:layout_height="wrap_content"                android:layout_gravity="left"                android:layout_weight="1"                android:maxLines="2" />            <Button                android:id="@+id/button3"                style="@style/btn_dialog"                android:layout_width="0dip"                android:layout_height="wrap_content"                android:layout_gravity="center_horizontal"                android:layout_weight="1"                android:maxLines="2" />            <Button                android:id="@+id/button2"                style="@style/btn_dialog"                android:layout_width="0dip"                android:layout_height="wrap_content"                android:layout_gravity="right"                android:layout_weight="1"                android:maxLines="2" />            <LinearLayout                style="@style/btn_dialog"                android:orientation="horizontal"                android:id="@+id/rightSpacer"                android:layout_width="0dip"                android:layout_height="wrap_content"                android:layout_weight="0.25"                android:visibility="gone" />        </LinearLayout>    </LinearLayout></LinearLayout>

styles.xml代码如下

<resources>    <style name="AppBaseTheme" parent="android:Theme.Light"></style>    <style name="AppTheme" parent="AppBaseTheme">        <item name="android:windowBackground">@mipmap/main_bg01</item>        <item name="android:actionBarStyle">@style/ActionBarStyle</item>    </style>    <style name="ActionBarStyle" parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse">        <item name="android:icon">@mipmap/app_logo4</item>        <item name="android:background">#002D2C2C</item>    </style>    <style name="textAppearanceDialogWindowTitle">        <item name="android:textSize">15sp</item>        <item name="android:textColor">#FFFFFFFF</item>        <item name="android:textStyle">normal</item>    </style>    <style name="CustomDialog">        <!-- 屏幕背景不变暗 -->        <!-- <item name="android:backgroundDimEnabled">false</item> -->        <!-- 更换背景图片实现全透明 -->        <item name="android:windowBackground">@color/translucence</item>        <item name="android:windowNoTitle">true</item>        <!-- 边框 -->        <item name="android:windowFrame">@null</item>        <!-- 是否悬浮在Activity之上 -->        <item name="android:windowIsFloating">true</item>        <!-- 半透明 -->        <!-- <item name="android:windowIsTranslucent">true</item> -->        <item name="android:windowContentOverlay">@null</item>        <item name="android:windowTitleStyle">@style/dialogWindowTitle</item>        <item name="android:windowAnimationStyle">@style/animationDialog</item>        <item name="android:popupBackground">@color/translucence</item>        <!--      android:windowSoftInputMode = "adjustResize" ,软键盘弹出时,要对主窗口布局重新进行布局,并调用onSizeChanged方法,切记一点当我们设置为“adjustResize”时,我们的界面不要设置为全屏模式,否则设置了这个属性也不会有什么效果。      而当我们设置android: windowSoftInputMode = "adjustPan"时,主窗口就不会调用onSizeChanged方法,界面的一部分就会被软键盘覆盖住,就不会被挤到软键盘之上了。      -->        <item name="android:windowSoftInputMode">adjustPan</item>    </style>    <style name="dialogWindowTitle">        <item name="android:textAppearance">@style/textAppearanceDialogWindowTitle</item>        <item name="android:maxLines">1</item>        <item name="android:scrollHorizontally">true</item>    </style>    <style name="animationDialog">        <item name="android:windowEnterAnimation">@anim/dialog_enter</item>        <item name="android:windowExitAnimation">@anim/dialog_exit</item>    </style>    <style name="btn_dialog">        <item name="android:layout_marginLeft">3dp</item>        <item name="android:layout_marginRight">3dp</item>        <item name="android:paddingLeft">25dp</item>        <item name="android:paddingRight">25dp</item>        <item name="android:paddingTop">10dp</item>        <item name="android:paddingBottom">10dp</item>        <item name="android:textSize">12sp</item>        <item name="android:textColor">#FFFFFFFF</item>        <item name="android:background">@drawable/btn_dialog</item>    </style>    <style name="btn_custom_style">        <item name="android:layout_width">35dip</item>        <item name="android:layout_height">35dip</item>        <item name="android:layout_gravity">center|right</item>        <item name="android:background">?android:listChoiceBackgroundIndicator</item>    </style>    <style name="NotificationContent">        <item name="android:textColor">?android:attr/textColorPrimary</item>    </style>    <style name="NotificationTitle">        <item name="android:textColor">?android:attr/textColorPrimary</item>        <item name="android:textStyle">bold</item>    </style></resources>

MuyuPlayerAPP.java代码如下

package com.haoxue.zixueplayer;import android.app.Application;import android.content.Context;import android.content.SharedPreferences;import com.haoxue.zixueplayer.utils.Constant;import com.lidroid.xutils.DbUtils;/** * Created by Administrator on 2016/7/29. */public class MuyuPlayerApp extends Application{    public static SharedPreferences sp;    public static DbUtils dbUtils;    public static Context context;    @Override    public void onCreate() {        super.onCreate();        sp=getSharedPreferences(Constant.SP_NAME, Context.MODE_PRIVATE);        dbUtils=DbUtils.create(getApplicationContext(),Constant.DB_NAME);        context=getApplicationContext();    }}





0 0
原创粉丝点击