Android 游戏开发
durex0402
这个作者很懒,什么都没留下…
展开
-
bitmap 设置图片尺寸,避免 内存溢出 OutOfMemoryError的优化方法
★android 中用bitmap 时很容易内存溢出,报如下错误:Java.lang.OutOfMemoryError : bitmap size exceeds VM budget ● 主要是加上这段:BitmapFactory.Options options = new BitmapFactory.Options(); options....原创 2010-07-15 11:20:06 · 230 阅读 · 0 评论 -
Android2.2中的APK安装参数installLocation
在Android 2.2中新的特性可以支持类似APP2SD卡上,我们的APK文件可以安装在SD卡上供用户使用,今天就说下目前项目的升级和一些配置。 1. 首先让你的程序支持SD卡上安装必须具备设置API Level至少为8,即androidmanifest.xml的中android:minSdkVersion至少为8这样你的APK最终运行时兼容的固件只有2.2了,同时...原创 2010-05-31 10:49:03 · 940 阅读 · 0 评论 -
设置桌面快捷方式
如何在程序中设置桌面快捷方式(home screen shortcut):/***创建桌面图标(Home Screen Shortcut) * * @param context the context * @param clz 快捷方式启动的Activity */ public static void makeShortcut(Context cont...原创 2010-06-07 00:24:53 · 140 阅读 · 0 评论 -
【转】释放内存中的图片资源
最近做的项目用到很多图片,经常出现内存溢出。 Andorid限制了8M的图片内存,如果超过了就会溢出,那就是要及时释放内存中的图片资源。 我之前的做法是简单对图片对象设置null。其实这样是不行的,图片依然在内存中的。 那如何做更有效呢? 很简单。有代码有真相。if(!bitmap.isRecycled()){//先判断图片是否已释放了 bitm...原创 2010-06-08 23:00:27 · 323 阅读 · 0 评论 -
【转】获取已安装程序的名字、包名、版本和图标
class PInfo { private String appname = ""; private String pname = ""; private String versionName = ""; private int versionCode = 0; private Drawable i...原创 2010-06-08 23:08:06 · 125 阅读 · 0 评论 -
【转】获取未安装的APK信息
在前面的文章发过一篇《获取已安装程序的名字、包名、版本和图标》,当时有朋友问我怎么获取未安装的APK信息(如:软件名称、包名、图标等等)。当时还不知道能读取未安装的APK信息,也没遇到这样的需求,所以也没去看怎么做。现在终于知道了,很简单。看代码会比较明了。 /** 获取未安装的APK信息 * @param context * @param archiveF...原创 2010-06-08 23:10:27 · 140 阅读 · 0 评论 -
【转】显示和隐藏软键盘
InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE); View view = this.getCurrentFocus(); if (view != null){ imm.showSoftInput(view, 0); //显示软键盘...原创 2010-06-08 23:15:29 · 89 阅读 · 0 评论 -
【转】SDK1.5r3以后写入SDCARD记得加权限
这两天把程序移到SDK1.6上编译,遇到对SDCARD写入的问题。开始觉得很奇怪,在1.5r2上正常,1.6上就不行。折腾了一会才想起1.5r3好像有增加了写入SDCARD的权限。 就是这个了<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permissi...原创 2010-06-08 23:17:11 · 86 阅读 · 0 评论 -
【转】实现Activity不压入Activity栈
我们要实现在Activity栈里只存在一个相同的Activity。 例如:A 打开 B, B 打开 C, C 又打开 B, 然后返回i是 B -> C -> A。 如何实现呢?很简单,看代码。Intent intent = new Intent(this, SearchResult.class); intent.setFlags(Intent.FLAG_AC...原创 2010-06-08 23:18:59 · 458 阅读 · 0 评论 -
【转】用代码安装APK程序
安装APK程序可以通过连接PC端安装,还有通过网络下载安装。 那如何在代码里控制安装呢? 其实很简单Intent i = new Intent(Intent.ACTION_VIEW); String filePath = "/sdcard/XXX.apk"; i.setDataAndType(Uri.parse("file://" + filePath),"ap...原创 2010-06-08 23:21:48 · 151 阅读 · 0 评论 -
自定义Android应用的访问权限
由于Android部分设计原理较为开放,可能通过Intent或PackageManager就可以解析处理调用其他应用的子类,所以在部分应用中需要做更多的安全处理,保证应用内部的稳定性和安全性。Android123强烈大家仔细阅读本文,这将会对您在构架Android应用时减少一些隐患的发生。 稳定性: 部分类可能没有数值的传入将会导致可能初始化失败,造成Force Close等问题。 安...原创 2010-06-09 00:00:14 · 114 阅读 · 0 评论 -
androidmanifest.xml高级属性解析
Android工程的的主配置文件androidmanifest.xml的一些高级属性大多数开发者可能不了解,下面我们一起来看一看。 支持的屏幕大小设置,我们可以显示的指定允许运行在:<supports-screens android:largeScreens="true" //WVGA android:normalScreens="true" //HVGA android:small...原创 2010-06-09 00:04:54 · 103 阅读 · 0 评论 -
Android程序完全退出的三种方法
很多网友可能发现自己的Android程序有很多Activity,比如说主窗口A,调用了子窗口B,在B中如何关闭整个Android应用程序呢? 这里Android123给大家三种比较简单的方法实现。 首先要说明在B中直接使用finish(),接下来手机显示的还是主窗口A,所以一起来看看Android开发网是如何实现的吧. 1. Dalvik VM的本地方法 andro...原创 2010-06-11 13:22:08 · 123 阅读 · 0 评论 -
我的命令工厂(一) —— 泛型
泛型开发已经是java编程中老生常谈的问题了,这里就不一一详细解释泛型的基础了。笔者在几年前也不知道泛型的好处,当时j2me并不支持泛型(如今亦是),直到写编辑器和服务器开发才渐渐接触和爱上java的泛型,虽然比起c++的泛型扔是相形见拙。好了简单的废话开场白结束之后我们开始介绍这个Command Factory. 这里笔者举例的一个工厂是用来处理上下行...原创 2010-05-31 10:39:20 · 140 阅读 · 0 评论 -
【转】Android 实现联网(四)——TCP/UDP
在java.net漫游篇幅中,我们详细介绍了与网络相关的基础类,本篇幅我们详细介绍TCP、UDP,以及如何在Android 实现联网中使用TCP、UDP协议。TCP(Transmission Control Protocol:传输控制协议)TCP模型结构图,如下图所示:服务器端与客户端的交互图,如下图所示:对上图,解释如下服务器程序编写调...原创 2010-05-31 10:19:46 · 225 阅读 · 0 评论 -
平滑摇杆的实现
很久不写关于游戏逻辑的文章了,略显生疏了,最近公司的项目需要用到平滑支持360度各角度摇动的摇杆,就随手写了一个,并非是区域判定的方法,那种方法很难达到用户的舒适度,体验感会下降得比较明显。 通过滑动的前后2个point来判断角度,为了舒适的平滑必须在手指离开屏幕的同时释放初始点,即如果手指没有离开屏幕时候的任何滑动的停止点都作为相对于初始点的结束点,这样做的讨巧点同样是...原创 2010-08-09 14:05:10 · 284 阅读 · 0 评论 -
彻底解决android surfaceview下触摸和键盘切换导致的键盘按键死锁现象
public GameEngine(Context context, AttributeSet attrs) { super(context, attrs); this.context = context; mSurfaceHolder = getHolder(); mSurfaceHolder.addCallback(thi...原创 2010-05-21 01:19:07 · 337 阅读 · 0 评论 -
判断android手机当前是否接入网络
如果拟开发一个网络应用的程序,首先考虑是否接入网络,在Android手机中判断是否联网可以通过 ConnectivityManager 类的isAvailable()方法判断,首先获取网络通讯类的实例 ConnectivityManager cwjManager=(ConnectivityManager)getSystemService(Context.CONNECTIVITY...原创 2010-05-21 01:24:29 · 124 阅读 · 0 评论 -
防止事件导致的oncreate的多次调用
<activity android:name=".Main" android:label="@string/app_name" android:configChanges="orientation|keyboardHidden">public void onConfigurationChanged(Configuration newConfi...原创 2010-05-21 01:33:15 · 147 阅读 · 0 评论 -
《MagicWorld》单机部分引擎完毕
用了一个半周搞定了这个demo,暂时支持触摸行走,8方向人物,高效A*寻路(后面可以考虑把寻路的ai放在其他线程里管理),8方向键盘模式,高效bitmap的镜像。 编译环境为2.0.1即api6 以后的日子里 会写一些新手教程主要通过这个demo的源码来解说android通过surfaceview来开发的整个过程。顺便骂一句javaey...原创 2010-05-21 01:50:23 · 96 阅读 · 0 评论 -
Context中获取屏幕尺寸的2种方法
方法1:public Point getDisplayMetrics() { DisplayMetrics dm = new DisplayMetrics(); dm = getApplicationContext().getResources().getDisplayMetrics(); int screenWidth = dm.widthPixels; ...原创 2010-05-21 01:57:43 · 536 阅读 · 0 评论 -
检查是否存在SD卡
很多时候,无论是写游戏还是写应用都免不了要去做一些文件读取工作,这就牵涉到用户是否使用SD卡,判断方法如下:private boolean checkSDCard(){ if(.Environment.getExternalStorageState().equals (Environment.MEDIA_MOUNTED)) return true; ...原创 2010-05-21 02:00:30 · 255 阅读 · 0 评论 -
Android Permission denied(不允许连接Socket) 错误
这是一个经典错误, Socket不能对外连接,错误不会被报出,调试的时候,能看到Exception, 这个Exception会有很多变体, 所以不一一举例,只要存在网络互联,该东东挺身而出,让你的程序不得运行。原因是: 需要访问到网络,所以,在AndroidManifest.xml中,需要进行如下配置:<uses-permission android:name="...原创 2010-05-24 16:39:11 · 805 阅读 · 0 评论 -
彻底kill当前activity的processor
在Activity中的onDestroy中完成以下代码 finish();Process.killProcess(Process.myPid()); 好了 使劲地干掉它吧!原创 2010-05-27 14:17:32 · 114 阅读 · 0 评论 -
【转】Android 实现联网(一)——package说明
今天我们将深入介绍了Android SDK 中一些与网络有关的package,如下:包描述java.net提供与联网有关的类,包括流和数据包(datagram)sockets、Internet 协议和常见 HTTP 处理。该包是一个多功能网络资源。有经验的 Java 开发人员可以立即使用这个熟悉的包创建应用程序。java....原创 2010-05-31 10:09:43 · 137 阅读 · 0 评论 -
【转】Android 实现联网(二)——java.net漫游
相比较C++,JAVA在网络编程方面的优势是不言而喻的。想当初学习MFC网络方面的痛苦,现在看到java.net包中的类,感觉轻松多了。说点题外话:在C++网络方面可以推荐给大家一个很好的开源项目POCO库,这个库在网络方面的功能只能用:那是相当强大,有兴趣的可以去学习下。在Android 实现联网(一)——package说明篇幅中,我们简要介绍了Android 网络方面的...原创 2010-05-31 10:17:01 · 111 阅读 · 0 评论 -
【转】Android 实现联网(三)——在线程中联网
在前面的关于Java I/O的学习中,有一个我们需要牢记的是:对数据流的操作都是阻塞的,在一般情况下,我们是不需要考虑这个问题的,但是在Android 实现联网的时候,我们必须考虑到这个问题。比如:从网络上下载一张图片:public Bitmap returnBitmap(String url){URL myFileUrl = null;Bitmap bitmap = nu...原创 2010-05-31 10:18:09 · 82 阅读 · 0 评论 -
EditText仅允许特定类型数据输入
很多网友可能在开发Android时发现EditText有时候需要限制用户输入的内容,通常我们可以使用正则表达式直接限制,但是Android已经为我们准备好了EditText的输入类型,这样的比正则要有以下几点优势: 1. 开发更简单,执行速度高效。 2. 输入法默认会根据情况变动,比如说设置为numeric后输入法会自动仅显示数字,不会出现Qwerty中的字母。 下面我们通...原创 2010-06-11 13:32:28 · 111 阅读 · 0 评论