当前位置: 编程技术>移动开发
本页文章导读:
▪NDK遍历sdcard底下的目录(C代码实现,JNI) NDK遍历sdcard下面的目录(C代码实现,JNI)
view plain
#include <jni.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <dirent.h>
#include <time.h> .........
▪ 银屏分辨率 屏幕分辨率
屏幕分辨率HVGA:320×480QVGA:240x320WQVGA400:240X400WQVAG432:240X432WVGA800: 480X800WVGA854: 480X854
px (pixels)像素 一般HVGA代表320x480像素,这个用的比较多。
dip或dp (device independent pixels)设.........
▪ 小弟我来来说说手机开发连连看的地图布局和连连看的算法 我来来说说手机开发连连看的地图布局和连连看的算法
eyes 们大家好: 这几天闲着没事做了一个手机版得连连看,做的很粗糙,不过实现了基本的功能。在做连连看看.........
[1]NDK遍历sdcard底下的目录(C代码实现,JNI)
来源: 互联网 发布时间: 2014-02-18
NDK遍历sdcard下面的目录(C代码实现,JNI)
#include <jni.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <dirent.h>
#include <time.h>
#include <android/log.h>
#define LOG_TAG "Test"
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO,LOG_TAG,__VA_ARGS__)
#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR,LOG_TAG,__VA_ARGS__)
#define PATHMAX 1024
void searchdir(char *path);
int total = 0;
void searchdir(char *path)
{
DIR *dp;
struct dirent *dmsg;
int i=0;
char addpath[PATHMAX] = {'\0'}, *tmpstr;
if ((dp = opendir(path)) != NULL)
{
while ((dmsg = readdir(dp)) != NULL)
{
if (!strcmp(dmsg->d_name, ".") || !strcmp(dmsg->d_name, ".."))
continue;
strcpy(addpath, path);
strcat(addpath, "/");
strcat(addpath, dmsg->d_name);
if (dmsg->d_type == DT_DIR )
{
char *temp;
temp=dmsg->d_name;
if(strchr(dmsg->d_name, '.'))
{
if((strcmp(strchr(dmsg->d_name, '.'), dmsg->d_name)==0))
{
continue;
}
}
LOGI("........directname:%s",dmsg->d_name);
searchdir(addpath);
}
}
}
closedir(dp);
}
JNIEXPORT jfloat JNICALL Java_com_docintest_SimpleNdkActivity_getSecond
(JNIEnv *env, jobject thiz)
{
clock_t tick_start,tick_end;
double t;
char *dirpath="/mnt/sdcard/";
LOGI("begin.................................................... function.");
tick_start=clock();
searchdir(dirpath);
tick_end=clock();
float dtime= (float)(tick_end-tick_start)/1000/1000;
printf( "Total time used:%f second\n ",dtime);
return dtime;
}
package com.docintest;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class SimpleNdkActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView tv=(TextView)findViewById(R.id.second);
tv.setText("Total time:"+getSecond()+"");
}
private native float getSecond();
static {
System.loadLibrary("test");
}
}
view plain
上(C代码)
(下)JAVA
view plain
结果:
[2] 银屏分辨率
来源: 互联网 发布时间: 2014-02-18
屏幕分辨率
屏幕分辨率
HVGA:320×480
QVGA:240x320
WQVGA400:240X400
WQVAG432:240X432
WVGA800: 480X800
WVGA854: 480X854
px (pixels)像素
一般HVGA代表320x480像素,这个用的比较多。
dip或dp (device independent pixels)设备独立像素
这个和设备硬件有关,一般为了支持WVGA、HVGA和QVGA 推荐使用这个,不依赖像素。
sp (scaled pixels — best for text size)比例像素
主要处理字体的大小,可以根据系统的字体自适应。
除了上面三个显示单位,下面还有几个不太常用:
in (inches)英寸
mm (millimeters)毫米
pt (points)点,1/72英寸
为了适应不同分辨率,不同的像素密度,推荐使用dip ,文字使用sp。
[3] 小弟我来来说说手机开发连连看的地图布局和连连看的算法
来源: 互联网 发布时间: 2014-02-18
我来来说说手机开发连连看的地图布局和连连看的算法
eyes 们大家好:
这几天闲着没事做了一个手机版得连连看,做的很粗糙,不过实现了基本的功能。在做连连看看的这几天感触颇深。下面就写写我做连连看的感受。在项目中的算法都是我自己想的,可能那里写的不是很好。希望得到大家的点评。
首先来说说地图的布局吧。地图我是用一个二维的数组实现的。下面来说说如何来生成这个二维的数组。假如入你的是6*8的大小, 那么最好选择24张不一样的图片(当然这个图片不一定是24张不一样的)为了保证生成的二维数组里面的图片是成双成对的,我声明了一个list list 的大小也是6*8 然后在生成的这个list 的时候两个两个 生成,这样就保证这个list 里面的图片一定是成双成对的。 这个时候就要给 声明的二维数组赋值了,在赋值的时候 要随即取 list 里面的值 ,每取出一个就删除一个,让这个随即数始终在0到list的大小之间。 这样就生成了一个一定成双成对的出现的二维数组了地图了。
上面是我生成地图布局的方法。
下面来说说这个连连看的算法。
首先是横向计算看看两个图片是否可以相连。(这个中间的过程大家看我的代码吧!代码中间有注释)
其次是纵向计算看看两个图片是否可以相连。
一个拐角可以让两张图片的相连的其实也很简单,当两个图片可以用一个拐角相连的时候那么这两个图片刚好可以画成一个矩形,而这两个图片的刚好位于矩形的两个对角。
这个时候你只要把这个矩形对折一下(当然是你想想中的)会得到这个矩形的另外两个对角。只要这两个对角其中的一个在横向的方向和纵向的方向 能和你选中的这两个图片相连,就代表你选中的两个图片在一个拐角中是可以联通的。
两个拐角的其实的思路也很简单,就是那这其中一个 在他的周围找到一个可以和另外一个只有一个拐角相连,如果有这么一个位置就代表 两个图片通过两个拐角就可以相连。
其实我的思路就是,不管是1个拐角还是两个拐角最终都会转化成 横向相连或者纵向相连。
以上,是我的思路。 大家谁有更好的思路。请说下。方便我们大家一起了解。有什么不对的地方请大家说出来。
eyes 们大家好:
这几天闲着没事做了一个手机版得连连看,做的很粗糙,不过实现了基本的功能。在做连连看看的这几天感触颇深。下面就写写我做连连看的感受。在项目中的算法都是我自己想的,可能那里写的不是很好。希望得到大家的点评。
首先来说说地图的布局吧。地图我是用一个二维的数组实现的。下面来说说如何来生成这个二维的数组。假如入你的是6*8的大小, 那么最好选择24张不一样的图片(当然这个图片不一定是24张不一样的)为了保证生成的二维数组里面的图片是成双成对的,我声明了一个list list 的大小也是6*8 然后在生成的这个list 的时候两个两个 生成,这样就保证这个list 里面的图片一定是成双成对的。 这个时候就要给 声明的二维数组赋值了,在赋值的时候 要随即取 list 里面的值 ,每取出一个就删除一个,让这个随即数始终在0到list的大小之间。 这样就生成了一个一定成双成对的出现的二维数组了地图了。
上面是我生成地图布局的方法。
下面来说说这个连连看的算法。
首先是横向计算看看两个图片是否可以相连。(这个中间的过程大家看我的代码吧!代码中间有注释)
其次是纵向计算看看两个图片是否可以相连。
一个拐角可以让两张图片的相连的其实也很简单,当两个图片可以用一个拐角相连的时候那么这两个图片刚好可以画成一个矩形,而这两个图片的刚好位于矩形的两个对角。
这个时候你只要把这个矩形对折一下(当然是你想想中的)会得到这个矩形的另外两个对角。只要这两个对角其中的一个在横向的方向和纵向的方向 能和你选中的这两个图片相连,就代表你选中的两个图片在一个拐角中是可以联通的。
两个拐角的其实的思路也很简单,就是那这其中一个 在他的周围找到一个可以和另外一个只有一个拐角相连,如果有这么一个位置就代表 两个图片通过两个拐角就可以相连。
其实我的思路就是,不管是1个拐角还是两个拐角最终都会转化成 横向相连或者纵向相连。
以上,是我的思路。 大家谁有更好的思路。请说下。方便我们大家一起了解。有什么不对的地方请大家说出来。
最新技术文章: