您的位置:首页 > 大数据 > 人工智能

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

2016-08-17 20:19 423 查看

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.[b]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();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息