`
lovelease
  • 浏览: 386022 次
社区版块
存档分类
最新评论
文章列表
本博客将迁移至CSDN
最近在为游戏做java sdk的cocos2dx引擎层代码时遇到两个问题: 1.游戏安装后无法在老设备(4.4)上运行,6.0没问题。crash信息为: xxx/proj.android/../cocos2d/cocos/./platform/CCFileUtils.cpp:277: error: undefined reference to 'atof' xxx/proj.android/../cocos2d/cocos/./platform/CCFileUtils.cpp:286: error: undefined reference to 'atof' xxx/proj.andro ...
为了实现持续集成,提高代码质量,项目要求集成Jenkins,第一次集成Jenkins,花了不少时间,终于还是完成了,这里记录一下整个过程,Jenkins支持很多功能,Android Lint、Check Style、PMD、FindBugs、JUnit Test Report、Coverage Report等等,做 ...
前言 项目要做短信验证码自动填充的功能,基本上两种方法:ContentObserver监听短信数据库、广播。我个人比较喜欢监听数据库的方式,原因有以下几点: 1.广播方式只能读短信,不能写短信(比如更新短信状态为已读);而监听数据库则可以对短信做增删改查; 2.系统的短信广播是有序广播,如果有其他应用的优先级高于我们的应用,广播会先被其他应用截获,如果其他应用截获短信广播后将其消费掉并且不再继续发送,那我们的应用就收不到广播了; 3.广播方式需要注册receiver,动态注册还好,如果是静态注册,对于sdk类的产品来说,使用者有可能忘记在Manifest中注册; 基于以上原因,我的项目中索性就选 ...
之前一篇文章里有用到过一个封装好的定时器工具类,现在又做了一些升级,支持自定义响应多少次以后自动关闭,这里单独共享出来: package com.example.util; import java.util.Timer; import java.util.TimerTask; import com.example.CnLog; import android.os.Handler; import android.os.Message; /** * Generate a timer object with specified 'delay' and 'period ...
网上讲android适配不同分辨率的文章很多,但是很少有说明不同分辨率的屏幕应该对应多大分辨率的app icon,这里做一个说明: To create alternative bitmap drawables for different densities, you should follow the 3:4:6:8:12:16 scaling ratio between the six generalized densities. For example, if you have a bitmap drawable that's 48x48 pixels for medium-density ...
在做facebook登录时,正好看到其SDK中一段代码,可以根据屏幕像素适配自己的控件的大小,虽然自己以前也做过类似的逻辑,但不如人家的逻辑来的严谨,这里贴出来学习一下: // width below which there are no extra margins private static final int NO_PADDING_SCREEN_WIDTH = 480; // width beyond which we're always using the MIN_SCALE_FACTOR private static final int MAX ...
获取状态栏高度有两种方法: 1.如果是在Activity中: Rect localRect = new Rect(); getWindow().getDecorView().getWindowVisibleDisplayFrame(localRect); statusHeight = localRect.top; 限制:由于getWindow()方法在Activity中,所以只能在Activity中使用 ,当然了,如果你传递的context对象可以被强转成Activity,那也可以,如下: ((Activity)mContext).getWindo ...
如果要自定义命令,或者说配置环境变量,都是从~/.bashrc文件下手;一般linux系统中都有该文件,在其中追加相应命令即可,如果没有,自己创建; 1.将自定义的命令添加到~/.bashrc alias my_command='ssh jackie@192.168.1.105' // 添加自定义的命令,以ssh远程连接为例 if [ -f /etc/bashrc ]; then . /etc/bashrc fi export PATH=/usr/android-sdk-macosx/tools:$PATH // 配置环境变量,以android sdk为例 保存退出后运 ...
一个常见的效果:控件自动移入屏幕,停留几秒,再移出屏幕。项目中想做,但没找到合适的教程,于是自己写了一个工具类实现这个效果。本人初学android,实现方法肯定不是最优的,这只是一个没有办法的办法。构思很简单:两个动画,一个移入,一个移出,两个动画间插入一个计时器,以下是代码: 动画类(该类可以实现多个控件的同步动画,只要把所有控件传入构造方法即可,如果要执行不同的动画,各个控件单独调用就可以了,同时设置了一个开关用于控制是否执行“移出”的动作): package net.jackie.util; import android.annotation.SuppressLint; imp ...
当我的项目中需要捕获google map的touch事件时,才发现google没有提供OnTouchListener,在其提供的一些listener中看了一遍也没发现有什么可以替代的,一室查了一番。还好有人实现了该功能,原文链接如下: How to detect a user pan/touch/drag on Android Map v2 作者捕获的是按屏幕200毫秒以上的事件,有点像LongClick,逻辑改改就可以捕获自己想要的事件了,对我来说,其实想捕获“用户移动了地图”的事件,代码如下: public class MySupportMapFragment extends Suppo ...
本文主要讲两个内容:1.如何将DatePicker和TimePicker放在一个dialog里面;2.改变他们的宽度; 问题1:其实现思路就是自定义一个Dialog,然后往里面同时放入DatePicker和TimePicker,直接贴代码: date_time_picker.xml: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" and ...
  使用ViewPager做滑动切换图片的效果时,如果图片是从网络下载的,那么在子线程中下载完图片时我们会使用handler通知UI线程,然后UI线程就可以调用mViewPager.getAdapter().notifyDataSetChanged()进行页面的刷新,但是viewpager不同于listview,你会发现单纯的调用notifyDataSetChanged()并不能刷新页面。先说说Viewpager的刷新过程:在每次调用notifyDataSetChanged()时,都会激活getItemPosition(Object object)方法,该方法会遍历viewpager的所有ite ...
  在我开发的语音播放程序中,首次播放语音没问题,第二次播放时就抛出IllegalStateException异常,由于项目时间比较赶,大致查了下,基本明白问题的原因了,自己debug也证实了一些个推论,但最佳的解决方法却未能找到,只有一个自己想到的笨办法,和同样遇到这问题的人分享一下。   首先要明确IllegalStateException这个异常是什么意思,它是指“非法的状态”。据我调查所知,android的mediaplayer API中用到了JNI,也就是我们的java代码是要调用native的C++方法的(mediaplayer是用c++实现的),而这里之所以出现这个异常,就是因为我 ...
这是一个接收xml格式的string,并进行解析的工具类。 注:该工具类参考了其他网友的代码,链接忘了。 package com.jackie.mytestproject.xmltest; import java.io.IOException; import java.io.StringReader; import java.util.ArrayList; import java.util.List; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFac ...
Global site tag (gtag.js) - Google Analytics