繼《微博尾》之《玩轉尾巴》好玩尾巴積分版

我的第一個android應用——裝逼神器《微博尾》傳送門:http://blog.csdn.net/love_5209/article/details/38708991


《玩轉尾巴》應用寶下載地址:http://android.myapp.com/myapp/detail.htm?apkName=com.xiaoku.playtail

(PS:現在的個人開發者真的不是很好混了,審覈上app市場越來越嚴格了,歡迎一些app個人開發者來交流)

應用簡介:

玩轉尾巴,集好玩有趣的微博尾巴於一體,是繼《微博尾》之後的第二版,精心挑選好玩有趣的尾巴,讓你的尾巴動起來。主要尾巴模塊分爲【熱門手機】【帥哥美女】【文藝勵志】【控族達人】【個性熱門】【粉絲】【專屬定製】【宅男腐女】【遊戲電影】九大模塊,總尾巴數達200多條,讓你盡情享受尾巴的樂趣!


當前版本:V1.0


《玩轉尾巴》原理跟《微博尾》一樣,這次主要添加滑動框架及其積分獲取及其購買、簽到獲取積分等功能。


先看首頁效果圖(這張爲測試截圖,最下邊是用來放AD的):



嘻嘻,界面是不是很卡哇伊呢~~還添加了左滑還有右滑顯示菜單,如下圖:



《玩轉尾巴》保留了熱門手機的尾巴,如iPhone6、魅族4等等,其他版塊的尾巴皆爲精心挑選,定製出的版塊。


對於個人開發者,大多都使用了嵌入廣告平臺的廣告,我也一樣,選擇的廣告平臺是有米,之所以選擇它是因爲有米的平臺算是比較大,衆所周知的,後臺界面也比較好,如果有需要註冊的可以通過此鏈接註冊:https://www.youmi.net/account/register?r=NjQ4NjU=  (有個人開發者可一起交流推廣方面的)

其主要的廣告形式有積分牆、插屏、廣告條等等。

本次app就都使用上了以上3種廣告形式。具體可到有米的後臺下載SDK看或與我交流。


接下來進入正題,本次開發支持的最低版本爲2.2,之前使用fragment需要3.0以上版本,這次使用2.2可滿足更多用戶,通過v4支持庫的類android.support.v4.app.Fragment便可兼容低版本。


主要講一下中間做遇到的哪些問題和一些知識點吧~~

首先沒閱讀過這篇的可先查閱一下:我的第一個android應用——裝逼神器《微博尾》傳送門:http://blog.csdn.net/love_5209/article/details/38708991


1、首先是找主界面使用的框架,本次使用的是側滑menu菜單,源碼是在安卓巴士論壇上找的,自己做了一些修改便成可爲你所用了,框架源碼下載地址(僅供參考):http://yunpan.cn/Q7hQMBEjqWUbb  提取碼 1430


2、嵌入框架後,簡單閱讀一下源碼便可知道里面提供了ResideMenu這個主體類,下面的代碼就可輕鬆添加一個菜單選項了,接着可自己設置監聽的動作:

private ResideMenuItem itemHome;
private ResideMenu resideMenu;

public void onCreate(Bundle savedInstanceState) {
	setUpMenu();
}
private void setUpMenu() {
	//resideMenu初始化
 	resideMenu = new ResideMenu(this);
        resideMenu.setBackground(R.drawable.menu_background);
        resideMenu.attachToActivity(this);
        resideMenu.setMenuListener(menuListener);

	itemHome = new ResideMenuItem(this, R.drawable.icon_sy,     "首

頁");//設置菜單標題、圖標
        

        itemHome.setOnClickListener(this);//設置監聽
     	

        resideMenu.addMenuItem(itemHome, ResideMenu.DIRECTION_LEFT);//添加到

左邊的菜單

	//左上角按鈕
	findViewById(R.id.title_bar_left_menu).setOnClickListener(new 	

View.OnClickListener() {
            @Override
            public void onClick(View view) {
                resideMenu.openMenu(ResideMenu.DIRECTION_LEFT);
            }
        });
	//右上角按鈕
        findViewById(R.id.title_bar_right_menu).setOnClickListener(new 

View.OnClickListener() {
	            @Override
            public void onClick(View view) {
                resideMenu.openMenu(ResideMenu.DIRECTION_RIGHT);
            }
        });
}


3、之前微博尾的app_src配置文件是放在assets裏面的,這次添加了積分,意味着需要修改積分的值,然而問題來了,assets中的文件並不能修改,那麼,可通過數據庫SQLite來寫(比較規範一些),或者使用sharedpreferences存儲(數據量大的話不建議使用),後來採用了sharedpreferences,剛開始先在src目錄下放置配置文件,然後直接讀取到sharedpreferences,後續的修改積分直接操作sharedpreferences即可。(比較笨的方法)


4、listview的數據動態更新問題:使用購買完尾巴,需要修改尾巴爲“免積分”狀態,動態的更新listview,之後使用viewholder的做法來緩存listview的item,然而這樣做的後果是,上下一拉listview,會出現listview對應的尾巴積分狀態亂了,有些原本不需要積分的變成需要積分,不需要積分的變成積分。

解決辦法:listview不使用viewholder進行緩存。(這樣做對於某些低配置手機機型來說可能會有點不流暢)


5、關於積分簽到的功能,如下代碼:

public boolean isQianDao(){
    	Editor editor =sharedPreferences.edit();
    	String today = DateUtil.getDate(0);
    	Log.i("date",today);
    	String date = sharedPreferences.getString("date", DateUtil.getDate(0));
    	Log.i("date",date);
    	if(today.equals(date)){
    		editor.putString("date", DateUtil.getDate(1)).commit();
    		int amount = 2;
    		Log.i("date",DateUtil.getDate(1));
    		boolean isSuccess = PointsManager.getInstance(this).awardPoints(amount);
    		if(isSuccess){
    			Toast.makeText(getApplicationContext(), "簽到成功,獲得2積分", Toast.LENGTH_LONG).show();
    		}
    		return true;
    	}
		return false;
	}

DateUtil的getDate方法如下:(num參數爲0代表今天,1代表明天,以此類推)

public static String getDate(int num){
		Date date=new Date();//取時間
		 Calendar calendar = new GregorianCalendar();
		 calendar.setTime(date);
		 calendar.add(calendar.DATE,num);//把日期往後增加一天.整數往後推,負數往前移動
		 date=calendar.getTime(); 
		 SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
		 String dateString = formatter.format(date);
		 return dateString;
	}

原理也就是匹配今天日期是否跟sharedPreferences裏面一樣,一樣則可簽到,增加2個積分,同時可適當展示有米的廣告,簽完到則修改sharedPreferences的值爲明天的值。

當然,上面很多使用到了sharedPreference,這樣做的安全性肯定沒得說了,懂點android就輕鬆免積分了。

有想了解源碼的也可通過反編譯進行閱讀,只不過我已經進行了代碼混淆與加固,閱讀起來有點問題吧~


6、由於滑動那個框架也是用的fragment,故橫豎屏Activity重新加載問題也需要設置一下,在AndroidManifest.xml設置Activity的 android:screenOrientation="nosensor"

7、此外,再分享一個躲過檢測廣告的方法,就是利用日期來顯示廣告,一般審覈時間都在3天左右,故可看下面代碼:

public static boolean isTimeToShowAd(){
		boolean flag;
		SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
		String date=df.format(new Date());
		if(date.equals("2014-09-05")||date.equals("2014-09-06")||date.equals("2014-09-07")||date.equals("2014-09-08")||date.equals("2014-09-09")||date.equals("2014-09-10")||date.equals("2014-09-11")){
			flag=false;
		}else{
			flag=true;
		}
		return flag;
	}

想添加哪一天就添加哪一天,像小米商城一般有大屏廣告就會審覈不過,這個可以幫助你審覈通過,僅供參考~


8、調用系統自帶的分享功能,代碼如下:

//分享
  	public static void shareText(Context context, String title, String text) {  
  	    Intent intent = new Intent(Intent.ACTION_SEND);  
  	    intent.setType("text/plain");  
  	    intent.putExtra(Intent.EXTRA_SUBJECT, title);  
  	    intent.putExtra(Intent.EXTRA_TEXT, text);
  	    context.startActivity(Intent.createChooser(intent, title));
  	}

調用:

shareText(this,"分享","我正在使用《玩轉尾巴》一鍵換尾巴發微博,想怎麼玩就怎麼玩!http://a.app.qq.com/o/simple.jsp?pkgname=com.xiaoku.playtail");

9、滑動框架中可以看到設置不可用的方法setSwipeDirectionDisable,但是找不到恢復可用的方法,於是,我在滑動框架中添加一個方法供恢復可用(在ResideMenu.java文件中):

//我自己添加上的方法
	public void setSwipeDirectionEnable(int direction){
		if(isInDisableDirection(direction)){
			disabledSwipeDirection.remove(disabledSwipeDirection.indexOf(direction));
		}
	}
	//框架中有的方法
	public void setSwipeDirectionDisable(int direction) {
		disabledSwipeDirection.add(direction);
	}



本次app開發的過程中,主要學習到了別人框架的簡單使用,積分廣告的嵌入,廣告條也簡單,UI的配置及其圖標的選擇搭配,慢慢熟悉代碼。

《玩轉尾巴》應用寶下載地址:http://android.myapp.com/myapp/detail.htm?apkName=com.xiaoku.playtail


有疑問請回帖交流,感謝您的閱讀~!










發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章