Android 经典欧美小游戏 guess who
生活随笔
收集整理的這篇文章主要介紹了
Android 经典欧美小游戏 guess who
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
?
本來是要做iOS開發(fā)的,因為一些世事無常和機緣巧合與測試工作還有安卓系統(tǒng)結下了不解之緣,前不久找到了guess who 源碼,又加入了一些自己的元素最終完成了這個簡單的小游戲。
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@drawable/bg"><LinearLayoutandroid:orientation="horizontal"android:layout_width="match_parent"android:layout_height="match_parent"><ImageView android:id="@+id/mainmenu_information"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="5dp"android:layout_marginTop="5dp"android:layout_marginRight="50dp"android:src="@drawable/informationhelp" /><LinearLayoutandroid:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_marginTop="35dp"><LinearLayoutandroid:orientation="horizontal"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_weight="1"><!--主菜單--><LinearLayoutandroid:orientation="vertical"android:layout_width="wrap_content"android:layout_height="match_parent"android:layout_marginBottom="10dp"><Buttonstyle="@style/main_menu_button"android:id="@+id/main_menu_play"android:text="@string/mainmenu_play"/><Buttonstyle="@style/main_menu_button"android:id="@+id/main_menu_multi_play"android:text="@string/mainmenu_multi_play"/><Buttonstyle="@style/main_menu_button"android:id="@+id/main_menu_options"android:text="@string/mainmenu_options"/><Buttonstyle="@style/main_menu_button"android:id="@+id/main_menu_score"android:text="@string/mainmenu_score"/><Buttonstyle="@style/main_menu_button"android:id="@+id/main_menu_facebook"android:paddingLeft="25dp"android:paddingRight="25dp"android:drawableLeft="@drawable/sinaicon"android:text="@string/mainmenu_facebook_fan_us"/><Buttonstyle="@style/main_menu_button"android:id="@+id/main_menu_multi_exit"android:text="@string/mainmenu_exit"/></LinearLayout><LinearLayoutandroid:orientation="horizontal"android:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center"><ImageViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center"android:src="@drawable/big_star"/></LinearLayout></LinearLayout><!--android:id="@+id/buttom_layout"--><LinearLayoutandroid:orientation="horizontal"android:layout_width="wrap_content"android:layout_height="50dp"android:layout_marginTop="10dp"android:layout_weight="1"><TextViewandroid:id="@+id/high_run"style="@style/MainMenuText"android:text="@string/mainmenu_best_score"/><TextViewandroid:id="@+id/MainMenu_player_name"style="@style/MainMenuText"android:layout_marginLeft="5dp"android:text="@string/mainmenu_best_player_name"/><!--android:layout_marginVertical="2dp"--><TextViewandroid:id="@+id/MainMenu_payer_score"style="@style/MainMenuText"android:textColor="#ff0000"android:layout_width="40dp"android:layout_marginRight="4dp"android:gravity="right"android:text="100"/><TextViewandroid:id="@+id/mainmenu_points"style="@style/MainMenuText"android:text="@string/mainmenu_points"/></LinearLayout></LinearLayout></LinearLayout></LinearLayout> package guess.bobo.cn.guesswho.activity;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.support.annotation.Nullable;
import android.view.KeyEvent;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import java.util.Map;
import guess.bobo.cn.guesswho.R;
import guess.bobo.cn.guesswho.service.MediaService;
import guess.bobo.cn.guesswho.service.PrefService;
import guess.bobo.cn.guesswho.service.SoundService;
import guess.bobo.cn.guesswho.utils.Constants;
import guess.bobo.cn.guesswho.utils.HighScoreDB;
/**
* Created by Leon on 2018/6/2.
* Functions: 首頁-主菜單頁面
*/
public class MainMenuActivity extends Activity implements View.OnClickListener{
private SoundService sound;
private Button mainMenuPlay;
private Button mainMenuMultiPlay;
private Button mainMenuOptions;
private Button mainMenuScore;
private Button mainMenuFacebook;
private Button mainMenuMultiExit;
private ImageView mainmenu_information;
private TextView high_run;
private PrefService pref;
private TextView MainMenuPlayerName;
private TextView MainMenuPayerScore;
private TextView mainmenuPoints;
private boolean isExit;
/**
* Auto-created on 2018-06-02 15:35:55 by Android Layout Finder
* (http://www.buzzingandroid.com/tools/android-layout-finder)
*/
private void findViews() {
mainMenuPlay = (Button)findViewById( R.id.main_menu_play );
mainMenuMultiPlay = (Button)findViewById( R.id.main_menu_multi_play );
mainMenuOptions = (Button)findViewById( R.id.main_menu_options );
mainMenuScore = (Button)findViewById( R.id.main_menu_score );
mainMenuFacebook = (Button) findViewById( R.id.main_menu_facebook );
mainMenuMultiExit = (Button)findViewById( R.id.main_menu_multi_exit );
mainmenu_information = (ImageView)findViewById(R.id.mainmenu_information);
high_run = (TextView)findViewById(R.id.high_run);
MainMenuPlayerName = (TextView)findViewById( R.id.MainMenu_player_name );
MainMenuPayerScore = (TextView)findViewById( R.id.MainMenu_payer_score );
mainmenuPoints = (TextView)findViewById( R.id.mainmenu_points );
mainMenuPlay.setOnClickListener( this );
mainMenuMultiPlay.setOnClickListener( this );
mainMenuOptions.setOnClickListener( this );
mainMenuScore.setOnClickListener( this );
mainMenuFacebook.setOnClickListener( this );
mainMenuMultiExit.setOnClickListener( this );
mainmenu_information.setOnClickListener(this);
}
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_menu);
pref = new PrefService(this);
//在app啟動的第一個activity取出上次存儲的語言設置一下不然會是中文(默認)
pref.changeLocaleAccordingOptions(this,pref.LANGUAGE_OPTION[ pref.getLanguage(this)]);
findViews();
}
private void recreateLanguage() {
if (Constants.ISUPDATE){
//刷新button的text適配國際化
mainMenuMultiPlay.setText(R.string.mainmenu_multi_play);
mainMenuFacebook.setText(R.string.mainmenu_facebook_fan_us);
mainMenuScore.setText(R.string.mainmenu_score);
mainMenuOptions.setText(R.string.mainmenu_options);
mainMenuMultiExit.setText(R.string.mainmenu_exit);
mainMenuPlay.setText(R.string.mainmenu_play);
high_run.setText(R.string.mainmenu_best_score);
mainmenuPoints.setText(R.string.mainmenu_points);
Constants.ISUPDATE = false;
}
}
//onPause:與onResume配對,表示Activity正在暫停,正常情況下,onStop接著就會被調用
@Override
protected void onPause() {
super.onPause();
//釋放音響資源
sound.release();
}
//onResume:與onPause配對,表示Activity已經(jīng)創(chuàng)建完成
@Override
protected void onResume() {
Map map = HighScoreDB.getHighestPoint(this);
if (map != null && !map.isEmpty() && map.size() > 0){
MainMenuPlayerName.setText((String)map.get("PLAYERNAME"));
MainMenuPayerScore.setText(String.valueOf(map.get("POINTS")));
}
//創(chuàng)建音響服務類
sound = new SoundService(this);
recreateLanguage();
super.onResume();
}
//點擊事件的處理
@Override
public void onClick(View v) {
//只要是用戶點擊了按鈕就播放按鈕的聲音 不用每次都設置
if (v instanceof Button || v instanceof ImageView){
MediaService.play(this,R.raw.button);
}
//用戶點擊了開始
if ( v == mainMenuPlay ) {
Intent intent = new Intent(MainMenuActivity.this,PlayerNameActivity.class);
startActivity(intent);
// 用戶點擊了多人游戲
} else if ( v == mainMenuMultiPlay ) {
Intent intent = new Intent(MainMenuActivity.this,MultiPlayActivity.class);
startActivity(intent);
// 用戶點擊了選項
} else if ( v == mainMenuOptions ) {
Intent intent = new Intent(this,OptionsActivity.class);
startActivity(intent);
// 用戶點擊了分數(shù)
} else if ( v == mainMenuScore ) {
Intent intent = new Intent(MainMenuActivity.this,RankingListActivity.class);
startActivity(intent);
// 用戶點擊了微博
} else if ( v == mainMenuFacebook ) {
Intent intent = new Intent(MainMenuActivity.this,WeiboActivity.class);
startActivity(intent);
// 用戶點擊了退出
} else if ( v == mainMenuMultiExit ) {
finish();
}else if ( v == mainmenu_information){
Intent intent = new Intent(this,InformationActivity.class);
startActivity(intent);
}
}
//像其他軟件一樣連續(xù)點擊2次退出
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (!isExit){
//播放音效
MediaService.play(this,R.raw.button);
isExit = true;
Toast.makeText(MainMenuActivity.this,"再按一次退出",Toast.LENGTH_SHORT).show();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
isExit = false;
}
},2000);
return true;
}
return super.onKeyDown(keyCode, event);
}
} <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@drawable/bg"><LinearLayoutandroid:orientation="horizontal"android:layout_marginTop="80dp"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center"><TextViewstyle="@style/PlayerNameFill"android:layout_gravity="center"android:text="@string/player_name_fill"/><guess.bobo.cn.guesswho.component.DashLineExitTextandroid:id="@+id/player_name"android:layout_gravity="center"android:layout_width="236dp"android:layout_height="wrap_content"android:layout_marginLeft="10dp"android:textColor="#ffffff"android:textSize="20sp"android:textStyle="bold"></guess.bobo.cn.guesswho.component.DashLineExitText></LinearLayout><LinearLayoutandroid:orientation="horizontal"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="50dp"android:gravity="center"><Buttonandroid:id="@+id/player_name_menu"style="@style/small_button"android:text="@string/player_name_menu"/><Buttonandroid:id="@+id/player_name_ok"style="@style/small_button"android:layout_marginRight="60dp"android:layout_marginLeft="60dp"android:text="@string/player_name_ok" /><Buttonandroid:id="@+id/player_name_skip"style="@style/small_button"android:text="@string/player_name_skip"/></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:layout_marginBottom="30dp"android:layout_marginRight="30dp"android:gravity="bottom|right"><ImageViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:src="@drawable/logo"/></LinearLayout> </LinearLayout> package guess.bobo.cn.guesswho.activity;import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.support.annotation.Nullable; import android.view.View; import android.widget.Button; import android.widget.Toast;import guess.bobo.cn.guesswho.R; import guess.bobo.cn.guesswho.component.DashLineExitText; import guess.bobo.cn.guesswho.service.MediaService;/*** Created by Leon on 2018/6/2.* Functions: 用戶填寫名字的頁面*/ public class PlayerNameActivity extends Activity implements View.OnClickListener{private Button playerNameMenu;private Button playerNameOk;private Button playerNameSkip;private DashLineExitText playerName;/*** Find the Views in the layout<br />* <br />* Auto-created on 2018-06-03 13:11:44 by Android Layout Finder* (http://www.buzzingandroid.com/tools/android-layout-finder)*/private void findViews() {playerNameMenu = (Button)findViewById( R.id.player_name_menu );playerNameOk = (Button)findViewById( R.id.player_name_ok );playerNameSkip = (Button)findViewById( R.id.player_name_skip );playerName = (DashLineExitText)findViewById(R.id.player_name);playerNameMenu.setOnClickListener( this );playerNameOk.setOnClickListener( this );playerNameSkip.setOnClickListener( this );playerName.setOnClickListener( this );}@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.player_name);findViews();}/*** 用戶點擊事件的處理*/@Overridepublic void onClick(View v) {//只要是用戶點擊了按鈕就播放按鈕的聲音 不用每次都設置if (v instanceof Button){MediaService.play(this,R.raw.button);}if ( v == playerNameMenu ) {// 用戶點擊了菜單返回菜單頁 finish();} else if ( v == playerNameOk ) {// 用戶點擊了okif (playerName == null || playerName.getText().toString().equals("")){Toast.makeText(this,"姓名不可為空",Toast.LENGTH_SHORT).show();}else if (playerName.getText().toString().length() > 7){Toast.makeText(this,"姓名長度不能超過7個字節(jié)",Toast.LENGTH_SHORT).show();}else {Intent intent = new Intent(this, TapToStartActivity.class);intent.putExtra("PLAYER", playerName.getText().toString());startActivity(intent);finish();}} else if ( v == playerNameSkip ) {// 用戶點擊了跳過if ( playerName.getText().toString().length() > 7){Toast.makeText(this,"姓名長度不能超過7個字節(jié)",Toast.LENGTH_SHORT).show();}else {Intent intent = new Intent(this, TapToStartActivity.class);intent.putExtra("PLAYER", playerName.getText().toString());startActivity(intent);finish();}}else if ( v == playerName){//用戶點擊了輸入框這里先不做任何事在輸出框類DashLineExitText中已經(jīng)處理 }}@Overridepublic void onBackPressed() {super.onBackPressed();MediaService.play(this,R.raw.button);} } <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@drawable/bg"android:orientation="vertical" ><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="vertical"><TextView android:layout_height="wrap_content"android:layout_width="wrap_content"android:text="@string/hi_title"android:textSize="24sp" android:textColor="#FFFFFF"android:id="@+id/hi_title"android:layout_margin="6dip"/><TextView android:layout_height="wrap_content"android:layout_width="match_parent"android:text="@string/hi_tap_to_start"android:textSize="24sp"android:textColor="#FF0000"android:id="@+id/hi_tap_to_start"android:gravity="center"android:textStyle="bold"/></LinearLayout><LinearLayout android:background="@drawable/bg_bottom"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_marginLeft="75dp"android:layout_marginRight="75dp"android:orientation="vertical"android:layout_weight="1"><LinearLayout android:layout_height="wrap_content"android:layout_width="match_parent"android:orientation="horizontal"android:layout_gravity="center"><FrameLayout android:layout_height="wrap_content"android:layout_width="wrap_content"android:layout_gravity="center"android:layout_weight="1"><TextView android:layout_height="wrap_content"android:layout_width="match_parent"android:text="@string/hi_sample_question"android:textSize="18sp"android:textColor="#FFFFFF"android:layout_marginLeft="22dp"android:id="@+id/hi_sample_question"android:gravity="center"android:layout_gravity="center_horizontal"/><!--這是那個隱藏的textView--><TextView android:layout_height="wrap_content"android:layout_width="wrap_content"android:text="@string/hi_tip_msg"android:textSize="14sp"android:textColor="#FF8C00"android:id="@+id/hi_tip_msg"android:gravity="center"android:layout_gravity="center_horizontal"android:visibility="invisible"android:lines="2"/></FrameLayout><Button android:background="@drawable/tip_button_bg"android:clickable="false"android:layout_height="wrap_content"android:layout_width="30dp"android:text="@string/hi_tip_cnt"android:textSize="14sp"android:textColor="#FF8C00"android:id="@+id/hi_tip_button"android:gravity="center"android:layout_gravity="right"/></LinearLayout><LinearLayout android:layout_height="wrap_content"android:layout_width="match_parent"android:layout_weight="1"android:gravity="center"android:orientation="horizontal"><ImageView android:layout_height="wrap_content"android:layout_width="wrap_content"android:layout_gravity="center_vertical"android:src="@drawable/star_bigger"android:layout_marginRight="16dp"/><FrameLayout android:layout_height="wrap_content"android:layout_width="wrap_content"android:layout_gravity="center_vertical"><TextView android:background="@drawable/w_bg1"android:layout_height="wrap_content"android:layout_width="match_parent"android:text="@string/hi_sample_answer"android:textSize="18sp"android:textColor="#FFFFFF"android:gravity="center"android:layout_gravity="center_vertical"/><ImageView android:background="@drawable/bn_jt1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/hi_ans_button"android:layout_marginTop="1dp" /></FrameLayout></LinearLayout><ImageView android:layout_width="wrap_content"android:layout_height="wrap_content"android:background="@drawable/small_button_bg3"android:textColor="#ffffff"android:textSize="16sp"android:id="@+id/hi_skip_button"android:layout_gravity="right|bottom"android:layout_marginRight="10dip"android:layout_marginTop="5dip" /></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="300dp"android:orientation="vertical"android:layout_weight="1"android:layout_marginLeft="75dp"><TextView android:layout_height="wrap_content"android:layout_width="wrap_content"android:text="@string/hi_help_1"android:textSize="18sp"android:textColor="#FFFFFF" /><TextView android:layout_height="wrap_content"android:layout_width="wrap_content"android:text="@string/hi_help_2"android:textSize="18sp"android:textColor="#FFFFFF" /><TextView android:layout_height="wrap_content"android:layout_width="wrap_content"android:text="@string/hi_help_3"android:textSize="18sp"android:textColor="#FFFFFF" /><ImageView android:layout_height="wrap_content"android:layout_width="wrap_content"android:layout_gravity="right"android:src="@drawable/logo"android:layout_marginRight="10dip"/></LinearLayout></LinearLayout> package guess.bobo.cn.guesswho.activity;import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.support.annotation.Nullable; import android.view.MotionEvent; import android.view.View; import android.view.animation.AccelerateInterpolator; import android.view.animation.AlphaAnimation; import android.view.animation.Animation; import android.view.animation.AnimationUtils; import android.view.animation.TranslateAnimation; import android.widget.Button; import android.widget.ImageView; import android.widget.TextView;import guess.bobo.cn.guesswho.R; import guess.bobo.cn.guesswho.service.MediaService; import guess.bobo.cn.guesswho.utils.LogUtil;/*** Created by Leon on 2018/6/9.* Functions:*/ public class TapToStartActivity extends Activity {private TextView hiTitle;private TextView tapText;private TextView questionText;private TextView tipText;private Button hiTipButton;private ImageView ansButton;private ImageView skipButton;private static final int MSG_ID_TIP_ANIM = 1;private static final int MSG_ID_ANS_BUTTON_ANIM = 2;private static final int MSG_ID_SKIP_BUTTON_ANIM = 3;private static final int MSG_ID_TAP_TO_START_ANIM = 4;private static final int MSG_ID_START_GAME = 5;private boolean isStartedGame = false;private boolean isMoveBack = false;private String playName;private Handler handler = new Handler(){@Overridepublic void handleMessage(Message msg) {super.handleMessage(msg);switch (msg.what){case MSG_ID_TIP_ANIM:tipText.setVisibility(View.VISIBLE);Animation tipAnim = AnimationUtils.loadAnimation(TapToStartActivity.this,R.anim.tip_animation);tipAnim.setAnimationListener(new Animation.AnimationListener() {@Overridepublic void onAnimationStart(Animation animation) {tipText.setVisibility(View.VISIBLE);questionText.setVisibility(View.GONE);}@Overridepublic void onAnimationEnd(Animation animation) {tipText.setVisibility(View.GONE);questionText.setVisibility(View.VISIBLE);}@Overridepublic void onAnimationRepeat(Animation animation) {}});tipText.startAnimation(tipAnim);sendEmptyMessageDelayed(MSG_ID_TIP_ANIM,6000);break;case MSG_ID_ANS_BUTTON_ANIM :if (isMoveBack == false){Animation anim = new TranslateAnimation(TranslateAnimation.RELATIVE_TO_PARENT,0.0f,TranslateAnimation.RELATIVE_TO_PARENT,0.828f,TranslateAnimation.RELATIVE_TO_PARENT,0.0f,TranslateAnimation.RELATIVE_TO_PARENT,0.0f);anim.setRepeatCount(0);anim.setDuration(3000);ansButton.startAnimation(anim);isMoveBack = true;}else {Animation anim2 = new TranslateAnimation(TranslateAnimation.RELATIVE_TO_PARENT,0.828f,TranslateAnimation.RELATIVE_TO_PARENT,0.0f,TranslateAnimation.RELATIVE_TO_PARENT,0.0f,TranslateAnimation.RELATIVE_TO_PARENT,0.0f);anim2.setRepeatCount(0);anim2.setDuration(3000);ansButton.startAnimation(anim2);isMoveBack = false;}sendEmptyMessageDelayed(MSG_ID_ANS_BUTTON_ANIM,3000);break;case MSG_ID_SKIP_BUTTON_ANIM:Animation skipAnim = new AlphaAnimation(0.3f,1.0f);skipAnim.setDuration(2000);skipAnim.setRepeatMode(AlphaAnimation.REVERSE);skipButton.startAnimation(skipAnim);sendEmptyMessageDelayed(MSG_ID_SKIP_BUTTON_ANIM,3000);break;case MSG_ID_TAP_TO_START_ANIM:Animation tapAnim = new AlphaAnimation(0.5f,1.0f);tapAnim.setDuration(1600);tapText.startAnimation(tapAnim);sendEmptyMessageDelayed(MSG_ID_TAP_TO_START_ANIM,2000);break;case MSG_ID_START_GAME:startGame();finish();}}};/*** (http://www.buzzingandroid.com/tools/android-layout-finder)*/private void findViews() {hiTitle = (TextView)findViewById( R.id.hi_title );tapText = (TextView)findViewById( R.id.hi_tap_to_start );questionText = (TextView)findViewById( R.id.hi_sample_question );tipText = (TextView)findViewById( R.id.hi_tip_msg );hiTipButton = (Button)findViewById( R.id.hi_tip_button );ansButton = (ImageView)findViewById( R.id.hi_ans_button );skipButton = (ImageView)findViewById( R.id.hi_skip_button );}@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.tap_to_start);findViews();playName = getIntent().getStringExtra("PLAYER");if (playName.length() == 0 || playName.equals("")){playName = "沒有名字的用戶";}String hi = String.format(hiTitle.getText().toString(),playName);hiTitle.setText(hi);handler.sendEmptyMessageDelayed(MSG_ID_TIP_ANIM,3000);handler.sendEmptyMessage(MSG_ID_ANS_BUTTON_ANIM);handler.sendEmptyMessage(MSG_ID_SKIP_BUTTON_ANIM);handler.sendEmptyMessage(MSG_ID_TAP_TO_START_ANIM);}@Overridepublic boolean onTouchEvent(MotionEvent event) {if (isStartedGame == false){isStartedGame = true;MediaService.play(this,R.raw.slide);handler.sendEmptyMessage(MSG_ID_START_GAME);}return true;}//等著寫這里可能會用到 playName 已經(jīng)設置為全局變量請放心使用private void startGame() {Intent intent = new Intent(this,MainViewActivity.class);intent.putExtra("PLAYER_MAME",playName);startActivity(intent);}@Overrideprotected void onDestroy() {if (handler != null){handler.removeMessages(MSG_ID_TIP_ANIM);handler.removeMessages(MSG_ID_ANS_BUTTON_ANIM);handler.removeMessages(MSG_ID_SKIP_BUTTON_ANIM);handler.removeMessages(MSG_ID_TAP_TO_START_ANIM);handler.removeMessages(MSG_ID_START_GAME);handler = null;LogUtil.e("Activity銷毀的時候移除了Handler");}super.onDestroy();}@Overridepublic void onBackPressed() {super.onBackPressed();MediaService.play(this,R.raw.button);} } <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@drawable/bg"><!--<FrameLayout android:layout_height="wrap_content"--><!--android:layout_width="match_parent"--><!--android:layout_gravity="center">--><!--<ImageView android:layout_height="wrap_content"--><!--android:layout_width="match_parent"--><!--android:layout_marginTop="12dp"--><!--android:src="@drawable/bg_top"--><!--android:paddingTop="12dp"/>--><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginLeft="25dp"android:layout_marginRight="25dp"android:layout_marginTop="12dp"android:background="@drawable/bg_top"android:orientation="horizontal"><ImageViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:src="@drawable/logo_mainview" /><!--這個image沒有用占位image--><ImageViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1" /><ImageViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="43dp"android:layout_marginTop="17dp"android:src="@drawable/clock" /><TextViewandroid:id="@+id/main_view_min"style="@style/MainViewTimer"android:text="0"android:textColor="#ff0000" /><TextViewstyle="@style/MainViewTimer"android:text="@string/main_view_unit_min" /><TextViewandroid:id="@+id/mian_view_sec"style="@style/MainViewTimer"android:text="0"android:textColor="#ff0000" /><TextViewstyle="@style/MainViewTimer"android:layout_marginRight="5dp"android:text="@string/main_view_unit_sec" /></LinearLayout><!--↑已經(jīng)搞定--><!--下部分又分上下結構--><LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><!--下部分上邊--><LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:layout_marginLeft="25dp"android:layout_marginRight="25dp"android:layout_marginTop="5dp"android:layout_weight="1"android:orientation="horizontal"><!--<ImageView android:layout_height="wrap_content"--><!--android:layout_width="15dp"/>--><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:background="@drawable/bg_bottom"android:orientation="vertical"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"><LinearLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="vertical"><ImageViewandroid:id="@+id/mainview_person_icon"android:layout_width="wrap_content"android:layout_height="wrap_content"android:src="@drawable/business" /><TextViewandroid:id="@+id/mainview_person_type"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center"android:text="Business"android:textColor="#ffffff" /></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="vertical"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_gravity="center"android:orientation="horizontal"><FrameLayoutandroid:layout_width="348dp"android:layout_height="wrap_content"android:layout_gravity="center"android:layout_weight="1"><TextViewandroid:id="@+id/mainview_sample_question"android:layout_width="match_parent"android:layout_height="wrap_content"android:gravity="center"android:text="@string/hi_sample_question"android:textColor="#FFFFFF"android:textSize="18sp" /><TextViewandroid:id="@+id/mainview_tip_msg"android:layout_width="wrap_content"android:layout_height="wrap_content"android:gravity="center_vertical"android:lines="2"android:text="@string/hi_tip_msg"android:textColor="#FF8C00"android:textSize="14sp"android:visibility="invisible" /></FrameLayout><Buttonandroid:id="@+id/mainview_tip_button"android:layout_width="30dp"android:layout_height="wrap_content"android:layout_gravity="right"android:background="@drawable/tip_button"android:gravity="center"android:textAllCaps="false"android:text="Tip\n0/3"android:textColor="#FF8C00"android:textSize="14sp" /></LinearLayout><TextViewandroid:id="@+id/mainview_person_decription"android:layout_width="match_parent"android:layout_height="wrap_content"android:lines="2"android:text="Description"android:textColor="#FFFFFF"android:textSize="14sp" /></LinearLayout></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="10dp"android:gravity="center"android:orientation="horizontal"><LinearLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="5dp"android:layout_weight="1"android:orientation="vertical"><TextViewandroid:id="@+id/mainview_player_name"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="30dp"android:text="Player:Leon"android:textColor="#FF8C00"android:textSize="14sp" /><TextViewandroid:id="@+id/mainview_total_points"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="10dip"android:text="Points:0"android:textColor="#FFFFFF"android:textSize="14sp" /></LinearLayout><LinearLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center"android:layout_marginLeft="30dp"android:layout_marginRight="10dp"android:orientation="vertical"><ImageViewandroid:layout_width="wrap_content"android:layout_height="28dp"android:layout_marginBottom="7dp"android:src="@drawable/star_bigger" /><ImageViewandroid:layout_width="wrap_content"android:layout_height="28dp"android:layout_gravity="center_vertical"android:layout_marginBottom="7dp"android:src="@drawable/star_bigger" /><ImageViewandroid:layout_width="wrap_content"android:layout_height="28dp"android:layout_gravity="center_vertical"android:layout_marginBottom="7dp"android:src="@drawable/star_bigger" /></LinearLayout><LinearLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginRight="16dp"android:orientation="vertical"><FrameLayoutandroid:layout_width="250dp"android:layout_height="35dp"android:layout_gravity="center"><TextViewandroid:id="@+id/mainview_answer_1"android:layout_width="match_parent"android:layout_height="wrap_content"android:background="@drawable/w_bg1"android:gravity="center"android:paddingLeft="35dp"android:singleLine="true"android:ellipsize="end"android:text="@string/hi_sample_answer"android:textColor="#FFFFFF"android:textSize="18sp" /><!--加上這個LinearLayout是為了做動畫--><LinearLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"><guess.bobo.cn.guesswho.component.SlidingButtonandroid:id="@+id/mainview_answer_1_button"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="1dp"android:background="@drawable/bn_jt1"android:gravity="center" /></LinearLayout></FrameLayout><FrameLayoutandroid:layout_width="250dp"android:layout_height="35dp"android:layout_gravity="center"><TextViewandroid:id="@+id/mainview_answer_2"android:layout_width="match_parent"android:layout_height="wrap_content"android:background="@drawable/w_bg1"android:gravity="center"android:paddingLeft="35dp"android:singleLine="true"android:ellipsize="end"android:text="@string/hi_sample_answer"android:textColor="#FFFFFF"android:textSize="18sp" /><!--加上這個LinearLayout是為了做動畫--><LinearLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"><guess.bobo.cn.guesswho.component.SlidingButtonandroid:id="@+id/mainview_answer_2_button"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="1dp"android:background="@drawable/bn_jt1"android:gravity="center" /></LinearLayout></FrameLayout><FrameLayoutandroid:layout_width="250dp"android:layout_height="35dp"android:layout_gravity="center"><TextViewandroid:id="@+id/mainview_answer_3"android:layout_width="match_parent"android:layout_height="wrap_content"android:background="@drawable/w_bg1"android:gravity="center"android:paddingLeft="35dp"android:singleLine="true"android:ellipsize="end"android:text="@string/hi_sample_answer"android:textColor="#FFFFFF"android:textSize="18sp" /><!--加上這個LinearLayout是為了做動畫--><LinearLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"><guess.bobo.cn.guesswho.component.SlidingButtonandroid:id="@+id/mainview_answer_3_button"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="1dp"android:background="@drawable/bn_jt1"android:gravity="center" /></LinearLayout></FrameLayout></LinearLayout></LinearLayout></LinearLayout><!--<ImageView android:layout_height="wrap_content"--><!--android:layout_width="15dp"/>--></LinearLayout><!--↓ 底部--><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginBottom="10dp"android:layout_marginLeft="25dp"android:layout_marginRight="25dp"android:layout_marginTop="5dp"android:layout_weight="1"android:orientation="horizontal"><ImageViewandroid:id="@+id/mainview_star_list1"style="@style/MainViewStar2" /><ImageViewandroid:id="@+id/mainview_star_list2"style="@style/MainViewStar2" /><ImageViewandroid:id="@+id/mainview_star_list3"style="@style/MainViewStar" /><ImageViewandroid:id="@+id/mainview_star_list4"style="@style/MainViewStar" /><ImageViewandroid:id="@+id/mainview_star_list5"style="@style/MainViewStar" /><ImageViewandroid:id="@+id/mainview_star_list6"style="@style/MainViewStar" /><ImageViewandroid:id="@+id/mainview_star_list7"style="@style/MainViewStar" /><ImageViewandroid:id="@+id/mainview_star_list8"style="@style/MainViewStar" /><ImageViewandroid:id="@+id/mainview_star_list9"style="@style/MainViewStar" /><ImageViewandroid:id="@+id/mainview_star_list10"style="@style/MainViewStar" /><!--占位image沒有用只是為了占位用--><ImageViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1" /><Buttonandroid:id="@+id/mainview_skip"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center_horizontal"android:layout_marginRight="10dp"android:background="@drawable/small_button"android:text="@string/just_skip"android:textColor="#ffffff"android:textSize="10sp" /><Buttonandroid:id="@+id/mainview_end"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center_horizontal"android:layout_marginRight="10dp"android:background="@drawable/small_button"android:text="@string/main_view_end"android:textColor="#ffffff"android:textSize="10sp" /></LinearLayout></LinearLayout></LinearLayout> package guess.bobo.cn.guesswho.activity;import android.annotation.SuppressLint; import android.app.Activity; import android.app.Dialog; import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.support.annotation.Nullable; import android.view.MotionEvent; import android.view.View; import android.view.animation.Animation; import android.view.animation.AnimationUtils; import android.widget.Button; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast;import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Timer; import java.util.TimerTask;import guess.bobo.cn.guesswho.R; import guess.bobo.cn.guesswho.component.SlidingButton; import guess.bobo.cn.guesswho.modle.OneRoundGame; import guess.bobo.cn.guesswho.modle.Question; import guess.bobo.cn.guesswho.service.MediaService; import guess.bobo.cn.guesswho.service.PrefService; import guess.bobo.cn.guesswho.service.SoundService; import guess.bobo.cn.guesswho.utils.DBUtil; import guess.bobo.cn.guesswho.utils.HighScoreDB; import guess.bobo.cn.guesswho.utils.LogUtil; import guess.bobo.cn.guesswho.utils.PixelToDP;/*** Created by Leon on 2018/6/10.* Functions: 游戲-答題 界面*/ public class MainViewActivity extends Activity implements View.OnClickListener{private static final int MSG_ID_UPDATE_TIME = 1;private static final int MSG_ID_CLOCK_NEXT_QUESTION = 2;private static final int MSG_ID_SHOW_TIP = 3;private TextView mainViewMin;private TextView mianViewSec;private ImageView mainviewPersonIcon;private TextView mainviewPersonType;private TextView mainviewSampleQuestion;private TextView mainviewTipMsg;private Button mainviewTipButton;private TextView mainviewPersonDecription;private TextView mainviewPlayerName;private TextView mainviewTotalPoints;private TextView mainviewAnswer1;private SlidingButton mainviewAnswer1Button;private TextView mainviewAnswer2;private SlidingButton mainviewAnswer2Button;private TextView mainviewAnswer3;private SlidingButton mainviewAnswer3Button;private ImageView mainviewStarList1;private ImageView mainviewStarList2;private ImageView mainviewStarList3;private ImageView mainviewStarList4;private ImageView mainviewStarList5;private ImageView mainviewStarList6;private ImageView mainviewStarList7;private ImageView mainviewStarList8;private ImageView mainviewStarList9;private ImageView mainviewStarList10;//mainviewStarList[0] = mainviewStarList1;private ImageView[] mainviewStarLists = new ImageView[10];private Button mainviewSkip;private Button mainviewEnd;private OneRoundGame game;private String playName;//提示消息播放動畫的時候用戶不能點擊答題按鈕private boolean isNoAnmin = true;private List<OneRoundGame> allgames = new ArrayList<OneRoundGame>();private Handler handler = new Handler(){@Overridepublic void handleMessage(Message msg) {super.handleMessage(msg);switch (msg.what){case MSG_ID_UPDATE_TIME:if (!game.isPaused()) {game.increaseTimeUsed();updateTimerUI();}sendEmptyMessageDelayed(MSG_ID_UPDATE_TIME, 1000);break;case MSG_ID_CLOCK_NEXT_QUESTION:updateUIAccordingGameContent();break;case MSG_ID_SHOW_TIP:mainviewTipMsg.setVisibility(View.VISIBLE);Animation tipAnim = AnimationUtils.loadAnimation(MainViewActivity.this,R.anim.tip_animation);tipAnim.setAnimationListener(new Animation.AnimationListener() {@Overridepublic void onAnimationStart(Animation animation) {mainviewTipMsg.setVisibility(View.VISIBLE);mainviewSampleQuestion.setVisibility(View.GONE);isNoAnmin = false;}@Overridepublic void onAnimationEnd(Animation animation) {mainviewTipMsg.setVisibility(View.GONE);mainviewSampleQuestion.setVisibility(View.VISIBLE);game.addTipCnt();setUITip();isNoAnmin = true;}@Overridepublic void onAnimationRepeat(Animation animation) {}});mainviewTipMsg.startAnimation(tipAnim);break;}}};private void updateUIAccordingGameContent() {//設置游戲者的名字:如果游戲者名字為空,則前面已經(jīng)處理mainviewPlayerName.setText("Player"+":"+playName);//設置當前問題的提示信息 setUITip();//設置游戲當前的分數(shù)mainviewTotalPoints.setText("Points:"+String.valueOf(game.getScore()));//根據(jù)玩家答對題目數(shù)量設置點亮星星的個數(shù)for (int i = 0;i < mainviewStarLists.length;i++){ImageView starImage = mainviewStarLists[i];switch (game.getLevel()){case 0:if (i < game.getCorrectAnsCntForCurrentLevel()){//答對的題亮星 starImage.setImageResource(R.drawable.small_star1);}else {//回答錯誤的暗星 starImage.setImageResource(R.drawable.small_star2);}break;case 1:if (i < game.getCorrectAnsCntForCurrentLevel() - game.LEVEL_1_CNT){//答對的題亮星 starImage.setImageResource(R.drawable.small_star1);}else {//回答錯誤的暗星 starImage.setImageResource(R.drawable.small_star2);}break;case 2:if (i < game.getCorrectAnsCntForCurrentLevel() - game.LEVEL_2_CNT){//答對的題亮星 starImage.setImageResource(R.drawable.small_star1);}else {//回答錯誤的暗星 starImage.setImageResource(R.drawable.small_star2);}break;}}//設置當前題目,包括題目,提示,答案Question question = game.getCurrentQuestion();List<String> allAnswers = question.getAllAnswers();mainviewSampleQuestion.setText(question.getQuestion());mainviewAnswer1.setText(allAnswers.get(0));mainviewAnswer2.setText(allAnswers.get(1));mainviewAnswer3.setText(allAnswers.get(2));mainviewPersonDecription.setText(question.getDescription());//根據(jù)題目中人物的類型,設置任務圖片和對應的圖片標題int presonType = game.getCurrentQuestion().getPersonType();mainviewPersonIcon.setImageResource(personTypePic.get(presonType));mainviewPersonType.setText(personTypeName.get(presonType));}//設置當前問題的提示信息private void setUITip() {mainviewTipMsg.setText(game.getCurrentTip());setTipButtonCount();}private void updateTimerUI() {mainViewMin.setText(String.valueOf(game.getTimeUsedInMin()));mianViewSec.setText(String.valueOf(game.getTimeUsedInSec()));}@SuppressLint("WrongViewCast")private void findViews() {mainViewMin = (TextView)findViewById( R.id.main_view_min );mianViewSec = (TextView)findViewById( R.id.mian_view_sec );mainviewPersonIcon = (ImageView)findViewById( R.id.mainview_person_icon );mainviewPersonType = (TextView)findViewById( R.id.mainview_person_type );mainviewSampleQuestion = (TextView)findViewById( R.id.mainview_sample_question );mainviewTipMsg = (TextView)findViewById( R.id.mainview_tip_msg );mainviewTipButton = (Button)findViewById( R.id.mainview_tip_button );mainviewPersonDecription = (TextView)findViewById( R.id.mainview_person_decription );mainviewPlayerName = (TextView)findViewById( R.id.mainview_player_name );mainviewTotalPoints = (TextView)findViewById( R.id.mainview_total_points );mainviewAnswer1 = (TextView)findViewById( R.id.mainview_answer_1 );mainviewAnswer1Button = (SlidingButton)findViewById( R.id.mainview_answer_1_button );mainviewAnswer2 = (TextView)findViewById( R.id.mainview_answer_2 );mainviewAnswer2Button = (SlidingButton)findViewById( R.id.mainview_answer_2_button );mainviewAnswer3 = (TextView)findViewById( R.id.mainview_answer_3 );mainviewAnswer3Button = (SlidingButton)findViewById( R.id.mainview_answer_3_button );mainviewStarList1 = (ImageView)findViewById( R.id.mainview_star_list1 );mainviewStarList2 = (ImageView)findViewById( R.id.mainview_star_list2 );mainviewStarList3 = (ImageView)findViewById( R.id.mainview_star_list3 );mainviewStarList4 = (ImageView)findViewById( R.id.mainview_star_list4 );mainviewStarList5 = (ImageView)findViewById( R.id.mainview_star_list5 );mainviewStarList6 = (ImageView)findViewById( R.id.mainview_star_list6 );mainviewStarList7 = (ImageView)findViewById( R.id.mainview_star_list7 );mainviewStarList8 = (ImageView)findViewById( R.id.mainview_star_list8 );mainviewStarList9 = (ImageView)findViewById( R.id.mainview_star_list9 );mainviewStarList10 = (ImageView)findViewById( R.id.mainview_star_list10 );mainviewSkip = (Button)findViewById( R.id.mainview_skip );mainviewEnd = (Button)findViewById( R.id.mainview_end );mainviewTipButton.setOnClickListener( this ); mainviewSkip.setOnClickListener( this );mainviewEnd.setOnClickListener( this );//主界面下方的星星,保存到數(shù)組中mainviewStarLists[0] = mainviewStarList1;mainviewStarLists[1] = mainviewStarList2;mainviewStarLists[2] = mainviewStarList3;mainviewStarLists[3] = mainviewStarList4;mainviewStarLists[4] = mainviewStarList5;mainviewStarLists[5] = mainviewStarList6;mainviewStarLists[6] = mainviewStarList7;mainviewStarLists[7] = mainviewStarList8;mainviewStarLists[8] = mainviewStarList9;mainviewStarLists[9] = mainviewStarList10;}@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main_view);findViews();playName = getIntent().getStringExtra("PLAYER_MAME");for(int i = 0; i<4;i++) {OneRoundGame oneGame = new OneRoundGame(playName); List<Integer> questionIDs = DBUtil.getAllQuestionIdsInOneGame(this, OneRoundGame.LEVEL_1_COUNT,OneRoundGame.LEVEL_2_COUNT,OneRoundGame.LEVEL_3_COUNT);for (int questionID : questionIDs) {Question question = DBUtil.getQuestion(questionID);oneGame.fillQuestions(question);}allgames.add(oneGame);}game = allgames.get(0); startTimeRecoder();//開始計時器 startGame(); }private void startGame() {//下一題 handler.sendEmptyMessage(MSG_ID_CLOCK_NEXT_QUESTION);}@Overrideprotected void onPause() {//Activity “暫停”要做程序的暫停工作super.onPause();//設置游戲(計時器)暫停game.setPaused(true);// 關閉游戲的背景音樂MediaService.pause(this, R.raw.loop);}@Overrideprotected void onResume() {//Activity “開始或恢復”要做程序的恢復工作super.onResume();//設置游戲(計時器)暫停后的恢復game.setPaused(false);// 打開游戲的背景音樂-啟動計時器的時候打開這里就不用打開了MediaService.play(this, R.raw.loop);//根據(jù)玩家答對題目數(shù)量設置點暗星星的個數(shù)for (int i = 0;i < mainviewStarLists.length;i++){ImageView starImage = mainviewStarLists[i];starImage.setImageResource(R.drawable.small_star2);}}/**用戶點擊提示后使用提示的次數(shù)增加*/private void setTipButtonCount() {if (game.getTipUsedCnt() == 0){mainviewTipButton.setText("Tip\n0/3");}else if (game.getTipUsedCnt() == 1){mainviewTipButton.setText("Tip\n1/3");}else if (game.getTipUsedCnt() == 2){mainviewTipButton.setText("Tip\n2/3");}else if (game.getTipUsedCnt() == 3){mainviewTipButton.setText("Tip\n3/3");}}private static final int DIALOG_ID_ANSWER_RIHGT = 1;protected Dialog onCreateDialog(int id) {Dialog dialog = null;switch (id) {case DIALOG_ID_ANSWER_RIHGT:// do the work to define the pause Dialogbreak;default:dialog = null;}return dialog;} //計時器private void startTimeRecoder() {handler.sendEmptyMessageDelayed(MSG_ID_UPDATE_TIME,1000);}@Overridepublic boolean onTouchEvent(MotionEvent event) {// 用戶選擇了答案1 isNoAnmin提示信息是否播放完if (isNoAnmin && mainviewAnswer1Button.handleParentTouchEvent(this,event)) {selectAnswer(0);}// 用戶選擇了答案2 isNoAnmin提示信息是否播放完if (isNoAnmin && mainviewAnswer2Button.handleParentTouchEvent(this, event)) {selectAnswer(1);}// 用戶選擇了答案3 isNoAnmin提示信息是否播放完if (isNoAnmin && mainviewAnswer3Button.handleParentTouchEvent(this, event)) {selectAnswer(2);}return super.onTouchEvent(event);}/***點擊事件的處理*/@Overridepublic void onClick(View v) {//只要是用戶點擊了按鈕就播放按鈕的聲音 不用每次都設置if (v instanceof Button){MediaService.play(this,R.raw.button);}if ( v == mainviewTipButton ) {// 用戶點擊了提示按鈕 handler.sendEmptyMessage(MSG_ID_SHOW_TIP);}else if ( v == mainviewSkip ) {// 用戶點擊了跳過 finish();} else if ( v == mainviewEnd ) {// 用戶點擊了結束 finish();}}private void selectAnswer(int useSelectedAnswerIndex) {if (game.userSelectAnswer(useSelectedAnswerIndex)) {MediaService.play(this, R.raw.right);} else {MediaService.play(this, R.raw.wrong);}boolean isAllGameFinished = true;for(OneRoundGame game : allgames) {if (!game.isFinish()) {isAllGameFinished = false;}else{//用戶打錯題游戲結束 endTheGameAheadOfTime();}}if(game.isLevelUp()) {//傳遞參數(shù),調用升級界面。返回到主界面。Intent intent = new Intent(this, PassLevelActivity.class);intent.putExtra("LEVEL", game.getLevel());intent.putExtra("PLAYER_NAME", game.getPlayerName());this.startActivity(intent);} int count = game.nextQuestionCount();int i = allgames.indexOf(game);//第一個game中的問題回答完了if (count >= game.getQuestionCount() - 1){if (i >= allgames.size() - 1){//這里先不做任何處理原來是判斷數(shù)組越界后面在game.nextQuestion()有處理}else {game = allgames.get(i++);}}//Leon-------------------------//下一題時判斷數(shù)組是否越界問題數(shù)組越界游戲結束if (game.nextQuestion()){//傳遞參數(shù)(Intent),調用結束界面。Finish主界面,Intent intent = new Intent(this, UselessActivity.class);intent.putExtra("PLAYER_MAME",playName);Timer timer = new Timer();TimerTask saveHighScorTask = new TimerTask(){@Overridepublic void run() {String timeUsed = game.getTimeUsedInMin() + ":" + game.getTimeUsedInSec();HighScoreDB.save(MainViewActivity.this, game.getPlayerName(), timeUsed, game.getScore());}};timer.schedule(saveHighScorTask, 0);startActivity(intent);finish();} }/**用戶打錯題游戲結束*/private void endTheGameAheadOfTime() {//傳遞參數(shù)(Intent),調用結束界面。Finish主界面,Intent intent = new Intent(this,AheadOfTimeActivity.class);intent.putExtra("PLAYER_MAME",playName);Timer timer = new Timer();TimerTask saveHighScorTask = new TimerTask(){@Overridepublic void run() {String timeUsed = game.getTimeUsedInMin() + ":" + game.getTimeUsedInSec();HighScoreDB.save(MainViewActivity.this, game.getPlayerName(), timeUsed, game.getScore());}};timer.schedule(saveHighScorTask, 0);startActivity(intent);finish();}@Overrideprotected void onDestroy() {if (handler != null){handler.removeMessages(MSG_ID_UPDATE_TIME);handler.removeMessages(MSG_ID_CLOCK_NEXT_QUESTION);handler.removeMessages(MSG_ID_SHOW_TIP);handler = null;LogUtil.e("MainViewActivity銷毀的時候移除了Handler");}super.onDestroy();} //緩存人物類型和對應圖片,字符串資源private static Map<Integer,Integer> personTypePic = new HashMap<Integer, Integer>();static {personTypePic.put(1,R.drawable.music);personTypePic.put(2,R.drawable.sports);personTypePic.put(3,R.drawable.movies);personTypePic.put(4,R.drawable.politics);}private static Map<Integer,Integer> personTypeName = new HashMap<Integer, Integer>();static {personTypeName.put(1,R.string.persion_type_name_1);personTypeName.put(2,R.string.persion_type_name_2);personTypeName.put(3,R.string.persion_type_name_3);personTypeName.put(4,R.string.persion_type_name_4);}} <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@drawable/bg"><TextViewandroid:id="@+id/language_title"android:layout_width="match_parent"android:layout_height="wrap_content"android:gravity="center"android:layout_marginTop="20dp"android:layout_marginBottom="15dp"android:textSize="20sp"android:textStyle="bold"android:textColor="#ffffff"android:text="@string/options_title"/><TableLayoutandroid:layout_weight="1"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginLeft="30dp"android:layout_marginRight="30dp"android:stretchColumns="0"android:background="@drawable/options_box_bg"><TableRowandroid:layout_weight="1"android:layout_marginLeft="20dp"><RelativeLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"><TextViewandroid:id="@+id/options_language"android:paddingTop="10dp"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerVertical = "true"android:textSize="20sp"android:textColor="#ffffff"android:text="@string/options_language"/><LinearLayoutandroid:paddingTop="10dp"android:layout_marginTop="20dp"android:layout_marginRight="40dp"android:id="@+id/options_music1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerVertical = "true"android:layout_alignParentRight = "true"><ImageViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:background="@drawable/left_arrow_black"/><TextViewandroid:id="@+id/options_languages"android:layout_width="80dp"android:layout_height="wrap_content"android:textAlignment="center"android:textSize="17sp"android:textColor="#ffffff"android:background="#ff0000"android:text="@string/options_languagei"/><ImageViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:background="@drawable/right_arrow_black"/></LinearLayout></RelativeLayout></TableRow><ImageViewandroid:layout_marginLeft="20dp"android:layout_marginRight="20dp"android:layout_weight="1"android:layout_width="match_parent"android:layout_height="wrap_content"android:src="@drawable/options_line"/><TableRowandroid:layout_weight="1"android:layout_marginLeft="20dp"><RelativeLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"><TextViewandroid:id="@+id/text_music"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerVertical = "true"android:textSize="20sp"android:textColor="#ffffff"android:text="@string/options_music"/><ToggleButtonandroid:layout_marginRight="40dp"android:id="@+id/options_music"android:layout_width="wrap_content"android:layout_height="wrap_content"android:checked="true"android:layout_centerVertical = "true"android:layout_alignParentRight = "true"android:textAllCaps="false"android:textOn="@string/options_on"android:textOff="@string/options_off"android:background="@drawable/toggle_button"></ToggleButton></RelativeLayout></TableRow><ImageViewandroid:layout_marginLeft="20dp"android:layout_marginRight="20dp"android:layout_weight="1"android:layout_width="match_parent"android:layout_height="wrap_content"android:src="@drawable/options_line"/><TableRowandroid:layout_weight="1"android:layout_marginLeft="20dp"><RelativeLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"><TextViewandroid:id="@+id/text_sound"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerVertical = "true"android:textSize="20sp"android:textColor="#ffffff"android:text="@string/options_sound"/><ToggleButtonandroid:layout_marginRight="40dp"android:id="@+id/options_sound"android:layout_width="wrap_content"android:layout_height="wrap_content"android:checked="true"android:layout_centerVertical = "true"android:layout_alignParentRight = "true"android:textAllCaps="false"android:textOn="@string/options_on"android:textOff="@string/options_off"android:background="@drawable/toggle_button"></ToggleButton></RelativeLayout></TableRow></TableLayout><Buttonandroid:id="@+id/options_mainmenu"android:layout_width ="wrap_content"android:layout_height="wrap_content"android:background="@drawable/small_button"android:textColor="#ffffff"android:textSize="16sp"android:layout_marginLeft="20dp"android:layout_marginTop="15dp"android:text="@string/player_name_menu"/><ImageViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="right"android:layout_marginBottom="5dp"android:layout_marginRight="30dp"android:src="@drawable/logo"/></LinearLayout> package guess.bobo.cn.guesswho.activity;import android.app.Activity; import android.os.Bundle; import android.support.annotation.Nullable; import android.view.GestureDetector; import android.view.MotionEvent; import android.view.View; import android.widget.Button; import android.widget.TextView; import android.widget.ToggleButton;import guess.bobo.cn.guesswho.R; import guess.bobo.cn.guesswho.service.MediaService; import guess.bobo.cn.guesswho.service.PrefService; import guess.bobo.cn.guesswho.service.SoundService;/*** Created by Leon on 2018/6/3.* Functions:*/ public class OptionsActivity extends Activity implements View.OnClickListener,View.OnTouchListener,GestureDetector.OnGestureListener{private ToggleButton optionsMusic;private ToggleButton optionsSound;private Button optionsMainmenu;private PrefService pref;//方法二選擇語言的變量private GestureDetector gestureDetector;private TextView languageText;//方法一選擇語言的變量private boolean isLanguageTouched;private TextView language_title;private TextView options_language;private TextView options_music;private TextView text_sound;private int oldX;//這里要用static不然一離開這個activity i就變成0了// private static int i;/*** Find the Views in the layout<br />* <br />* Auto-created on 2018-06-03 19:58:48 by Android Layout Finder* (http://www.buzzingandroid.com/tools/android-layout-finder)*/private void findViews() {optionsMusic = (ToggleButton)findViewById( R.id.options_music );optionsSound = (ToggleButton)findViewById( R.id.options_sound );optionsMainmenu = (Button)findViewById( R.id.options_mainmenu );languageText = (TextView)findViewById(R.id.options_languages);language_title = (TextView)findViewById(R.id.language_title);options_language = (TextView)findViewById(R.id.options_language);options_music = (TextView)findViewById(R.id.text_music);text_sound = (TextView)findViewById(R.id.text_sound);//創(chuàng)建保存開關狀態(tài)參數(shù)的類-接下來校驗pref = new PrefService(this);//ToggleButton Checked狀態(tài)的校驗 optionsMusic.setChecked(pref.isGameMusic());optionsSound.setChecked(pref.isGameSound());optionsMusic.setOnClickListener( this );optionsSound.setOnClickListener( this );optionsMainmenu.setOnClickListener( this );//方法一: // languageText.setOnTouchListener(new View.OnTouchListener() { // @Override // public boolean onTouch(View v, MotionEvent event) { // isLanguageTouched = true; // // //注意這里返回false返回true就代表把這個事件吃掉了 // return false; // } // });//方法二gestureDetector = new GestureDetector(this);languageText.setOnTouchListener(this);}@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.options);findViews();}/***用戶點擊事件的處理*/@Overridepublic void onClick(View v) {//只要是用戶點擊了按鈕就播放按鈕的聲音 不用每次都設置if (v instanceof Button){MediaService.play(this,R.raw.button);}if ( v == optionsMusic ) {// 用戶點擊了游戲音樂pref.setGameMusic(((ToggleButton) v).isChecked(),this);} else if ( v == optionsSound ) {// 用戶點擊了游戲聲音(背景音樂)pref.setGameSound(((ToggleButton) v).isChecked(),this);} else if ( v == optionsMainmenu ) {// 用戶點擊了菜單(返回菜單) finish();}} //方法一 // @Override // public boolean onTouchEvent(MotionEvent event) { // // if (isLanguageTouched){ // if (event.getAction() == MotionEvent.ACTION_DOWN){ // oldX = (int) event.getX(); // }else if (event.getAction() == MotionEvent.ACTION_UP){ // if (oldX > event.getX()){ // handleLanguageOption(true); // } // if (oldX < event.getX()){ // handleLanguageOption(false); // } // isLanguageTouched = false; // } // } // // return false; // }private void handleLanguageOption(boolean isLeft) {int i = pref.getLanguage(this);if (isLeft){i--;//負數(shù)糾正if (i < 0){// i = i * -1;i = 2;}// i = (i - 1) % 3;}else {i++;//大數(shù)糾正if (i == 3){// i = i * -1;i = 0;}// i = (i + 1) % 3; }// //負數(shù)糾正 // if (i < 0){ // // i = i * -1; // i = i + 3; // }//languageText.setText(pref.LANGUAGE_OPTION[i]);//設置長久存儲游戲語言pref.setLanguage(i,this);MediaService.play(this,R.raw.slide);//更新UI上的語言 updateLanguageUi();}private void updateLanguageUi() {pref.changeLocaleAccordingOptions(this,pref.LANGUAGE_OPTION[ pref.getLanguage(this)]);languageText.setText(R.string.options_languagei);language_title.setText(R.string.options_title);optionsMainmenu.setText(R.string.player_name_menu);options_language.setText(R.string.options_language);options_music.setText(R.string.options_music);text_sound.setText(R.string.options_sound);}@Overridepublic void onBackPressed() {super.onBackPressed();MediaService.play(this,R.raw.button);}@Overridepublic boolean onDown(MotionEvent e) {return false;}@Overridepublic void onShowPress(MotionEvent e) {}@Overridepublic boolean onSingleTapUp(MotionEvent e) {return false;}@Overridepublic boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {return false;}@Overridepublic void onLongPress(MotionEvent e) {}@Overridepublic boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {if (e1.getX() - e2.getX() > 20){handleLanguageOption(true);}else if (e2.getX() - e1.getX() > 20){handleLanguageOption(false);}return false;}@Overridepublic boolean onTouch(View v, MotionEvent event) {//如果用戶點擊的是選擇語言的按按鈕就處理if (v.getId() == R.id.options_languages) {gestureDetector.onTouchEvent(event);return true;}return false;} } <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"android:background="@drawable/bg"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginBottom="10dp"android:layout_marginTop="10dp"android:textColor="#ffffff"android:textSize="20sp"android:layout_gravity="center"android:text="@string/ranking"/><LinearLayoutandroid:orientation="horizontal"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="10dp"android:layout_marginLeft="30dp"android:layout_marginRight="30dp"><TextViewandroid:id="@+id/line_one_name"android:layout_width="130dp"android:layout_height="wrap_content"android:textColor="#ffffff"android:text=""/><TextViewandroid:id="@+id/line_one_score"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textColor="#ffffff"android:gravity="center"android:layout_weight="1"android:text=""/><TextViewandroid:id="@+id/line_one_position"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textColor="#ff0000"android:text=""/></LinearLayout><LinearLayoutandroid:orientation="horizontal"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="10dp"android:layout_marginLeft="30dp"android:layout_marginRight="30dp"><TextViewandroid:id="@+id/line_two_name"android:layout_width="130dp"android:layout_height="wrap_content"android:textColor="#ffffff"android:text=""/><TextViewandroid:id="@+id/line_two_score"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textColor="#ffffff"android:gravity="center"android:layout_weight="1"android:text=""/><TextViewandroid:id="@+id/line_two_position"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textColor="#ff0000"android:text=""/></LinearLayout><LinearLayoutandroid:orientation="horizontal"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="10dp"android:layout_marginLeft="30dp"android:layout_marginRight="30dp"><TextViewandroid:id="@+id/line_three_name"android:layout_width="130dp"android:layout_height="wrap_content"android:textColor="#ffffff"android:text=""/><TextViewandroid:id="@+id/line_three_score"android:layout_width="wrap_content"android:layout_height="wrap_content"android:gravity="center"android:textColor="#ffffff"android:layout_weight="1"android:text=""/><TextViewandroid:id="@+id/line_three_position"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textColor="#ff0000"android:text=""/></LinearLayout><TextViewandroid:id="@+id/nodataye"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center"android:textSize="20sp"android:textColor="#ffffff"android:visibility="visible"android:text="@string/nodatayet"/></LinearLayout> package guess.bobo.cn.guesswho.activity;import android.app.Activity; import android.os.Bundle; import android.support.annotation.Nullable; import android.view.View; import android.widget.TextView;import java.util.Map;import guess.bobo.cn.guesswho.R; import guess.bobo.cn.guesswho.modle.RankingListModle; import guess.bobo.cn.guesswho.service.MediaService; import guess.bobo.cn.guesswho.utils.HighScoreDB; import guess.bobo.cn.guesswho.utils.LogUtil;/*** Created by Leon on 2018/7/3.* Functions: 分數(shù)排行榜*/ public class RankingListActivity extends Activity {private TextView lineOneName;private TextView lineOneScore;private TextView lineOnePosition;private TextView lineTwoName;private TextView lineTwoScore;private TextView lineTwoPosition;private TextView lineThreeName;private TextView lineThreeScore;private TextView lineThreePosition;private TextView nodataye;/*** Find the Views in the layout<br />* <br />* Auto-created on 2018-07-03 15:31:11 by Android Layout Finder* (http://www.buzzingandroid.com/tools/android-layout-finder)*/private void findViews() {lineOneName = (TextView)findViewById( R.id.line_one_name );lineOneScore = (TextView)findViewById( R.id.line_one_score );lineOnePosition = (TextView)findViewById( R.id.line_one_position );lineTwoName = (TextView)findViewById( R.id.line_two_name );lineTwoScore = (TextView)findViewById( R.id.line_two_score );lineTwoPosition = (TextView)findViewById( R.id.line_two_position );lineThreeName = (TextView)findViewById( R.id.line_three_name );lineThreeScore = (TextView)findViewById( R.id.line_three_score );lineThreePosition = (TextView)findViewById( R.id.line_three_position );nodataye = (TextView)findViewById( R.id.nodataye );}@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.ranking_list);findViews();}//onResume:與onPause配對,表示Activity已經(jīng)創(chuàng)建完成 @Overrideprotected void onResume() {RankingListModle rankingModle = HighScoreDB.getHighestAll(this);if (rankingModle.getPlayerNames() != null && rankingModle.getPlayerNames().size() > 0) {//數(shù)據(jù)庫中有數(shù)據(jù)隱藏提示 nodataye.setVisibility(View.GONE);//第一名處理String playName1 = rankingModle.getPlayerNames().get(0);if (playName1 != null && playName1.length() != 0) {lineOneName.setText(playName1);lineOneScore.setText(String.valueOf(rankingModle.getPlayerScores().get(0)));lineOnePosition.setText("1");}if ( rankingModle.getPlayerNames().size() > 1) {//第2名處理String playName2 = rankingModle.getPlayerNames().get(1);if (playName2 != null && playName2.length() != 0) {lineTwoName.setText(playName2);lineTwoScore.setText(String.valueOf(rankingModle.getPlayerScores().get(1)));lineTwoPosition.setText("2");}}if ( rankingModle.getPlayerNames().size() > 2) {//第3名處理String playName3 = rankingModle.getPlayerNames().get(2);if (playName3 != null && playName3.length() != 0) {lineThreeName.setText(playName3);lineThreeScore.setText(String.valueOf(rankingModle.getPlayerScores().get(2)));lineThreePosition.setText("3");}}}else {//數(shù)據(jù)庫中沒有數(shù)據(jù)提示用戶 nodataye.setVisibility(View.VISIBLE);}super.onResume();}@Overridepublic void onBackPressed() {super.onBackPressed();MediaService.play(this,R.raw.button);}} <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent"><WebViewandroid:id="@+id/weibo_view"android:layout_weight="1"android:layout_width="match_parent"android:layout_height="match_parent"><RelativeLayoutandroid:id="@+id/temp_layout"android:layout_width="match_parent"android:layout_height="match_parent"android:visibility="gone"android:gravity="center"android:background="#cc000000"><ProgressBarandroid:id="@+id/progressbar"android:layout_width="80dp"android:layout_height="80dp"android:max="100"android:progress="0"android:visibility="gone" /></RelativeLayout></WebView><LinearLayoutandroid:layout_width="match_parent"android:layout_height="60dp"android:layout_weight="1"android:orientation="horizontal"><Buttonandroid:id="@+id/goBack"android:layout_marginLeft="20dp"android:layout_width="wrap_content"android:layout_height="wrap_content"android:background="@drawable/web_leftbutton"/><Buttonandroid:id="@+id/goForward"android:layout_width="wrap_content"android:layout_height="wrap_content"android:background="@drawable/web_rightbutton"/><ImageViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"/><Buttonandroid:id="@+id/reload_btn"android:layout_width="wrap_content"android:layout_height="wrap_content"android:background="@drawable/renovate_button"/></LinearLayout></LinearLayout> package guess.bobo.cn.guesswho.activity;import android.app.Activity; import android.graphics.Bitmap; import android.os.Bundle; import android.support.annotation.Nullable; import android.view.View; import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.Button; import android.widget.ProgressBar; import android.widget.RelativeLayout;import guess.bobo.cn.guesswho.R; import guess.bobo.cn.guesswho.service.MediaService;/*** Created by Leon on 2018/7/5.* Functions:*/ public class WeiboActivity extends Activity implements View.OnClickListener {private WebView weiboView;private ProgressBar progressbar;private RelativeLayout tempLayout;private Button goBack;private Button goForward;private Button reloadBtn;private void finndView(){weiboView = (WebView)findViewById(R.id.weibo_view);progressbar = (ProgressBar)findViewById(R.id.progressbar);tempLayout = (RelativeLayout)findViewById(R.id.temp_layout);goBack = (Button)findViewById(R.id.goBack);goForward = (Button)findViewById(R.id.goForward);reloadBtn = (Button)findViewById(R.id.reload_btn);goBack.setOnClickListener(this);goForward.setOnClickListener(this);reloadBtn.setOnClickListener(this);}@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.weibo_view);finndView();setWeiBoView();}@Overridepublic void onClick(View v) {//只要是用戶點擊了按鈕就播放按鈕的聲音 不用每次都設置if (v instanceof Button){MediaService.play(this,R.raw.button);}if (v == goBack){//用戶點擊了返回if (weiboView.canGoBack()){goBack.setEnabled(true);weiboView.goBack();}else {goBack.setEnabled(false);}}else if (v == goForward){if (weiboView.canGoForward()){goForward.setEnabled(true);weiboView.goForward();}else {goForward.setEnabled(false);}}else if (v == reloadBtn){weiboView.reload();}}private void setWeiBoView(){WebSettings webSettings = weiboView.getSettings();//設置自適應屏幕,兩者合用webSettings.setUseWideViewPort(true); //將圖片調整到適合webview的大小webSettings.setLoadWithOverviewMode(true); // 縮放至屏幕的大小//設置WebView屬性,能夠執(zhí)行Javascript腳本webSettings.setJavaScriptEnabled(true);//設置可以訪問文件//webSettings.setAllowFileAccess(true);//支持縮放,默認為true。webSettings .setSupportZoom(false);//調整圖片至適合webview的大小webSettings .setUseWideViewPort(true);// 縮放至屏幕的大小webSettings .setLoadWithOverviewMode(true);//設置默認編碼webSettings .setDefaultTextEncodingName("utf-8");//設置自動加載圖片webSettings .setLoadsImagesAutomatically(true);// 設置WebView的客戶端weiboView.setWebViewClient(new WebViewClient(){@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {return false;// 返回false}});weiboView.loadUrl("http://www.cnblogs.com/henanleon/");}@Overridepublic void onBackPressed() {super.onBackPressed();MediaService.play(this,R.raw.button);}//WebViewClient主要幫助WebView處理各種通知、請求事件private WebViewClient webViewClient=new WebViewClient(){@Overridepublic void onPageFinished(WebView view, String url) {//頁面加載完成progressbar.setVisibility(View.GONE);tempLayout.setVisibility(View.GONE);}@Overridepublic void onPageStarted(WebView view, String url, Bitmap favicon) {//頁面開始加載progressbar.setVisibility(View.VISIBLE);tempLayout.setVisibility(View.VISIBLE);}@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {return super.shouldOverrideUrlLoading(view, url);}};@Overrideprotected void onDestroy() {if (weiboView != null){//釋放資源weiboView.destroy();weiboView=null;}super.onDestroy();}}
還有一些模型類,工具類,和一些不重要的頁面這里就不一一介紹了,有興趣的小伙伴聯(lián)系我我可以將代碼分享給你。
轉載于:https://www.cnblogs.com/henanleon/p/9275865.html
總結
以上是生活随笔為你收集整理的Android 经典欧美小游戏 guess who的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Bootstrap4 网格系统
- 下一篇: hadoop部署单机