继《微博尾》之《玩转尾巴》好玩尾巴积分版

我的第一个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


有疑问请回帖交流,感谢您的阅读~!










  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值