当前位置:  编程技术>移动开发
本页文章导读:
    ▪浏览Document文件夹上面的所有文件夹和文件列表        浏览Document文件夹下面的所有文件夹和文件列表 NSFileManager *fileManager = [NSFileManager defaultManager]; //在这里获取应用程序Documents文件夹里的文件及文件夹列表 NSString *documentDir = [NSSearc.........
    ▪ Tween与Fram动画片的实现        Tween与Fram动画的实现 Android的实现分为两种Tween与Frame动画 Tween动画的实现是通过图片在Canvas变化的轨迹而成,而Frame动画是由一幅幅图片变换而成 1. Tween有以下几种运行轨迹 a. Alpha:透明度.........
    ▪ 动态加载map代码段       动态加载地图代码段 // 得到GridNo图层 eMyLayer layerGridNo = mapWnd.GetMap().GetLayerByName("GridNo"); centerGeo = new eMyPoint2D(); eMyPoint CenterPix2D = new eMyPoint(mapWnd.getWidth() / 2, mapWnd .getHeight() / 2); c.........

[1]浏览Document文件夹上面的所有文件夹和文件列表
    来源: 互联网  发布时间: 2014-02-18
浏览Document文件夹下面的所有文件夹和文件列表
NSFileManager *fileManager = [NSFileManager defaultManager];  
    //在这里获取应用程序Documents文件夹里的文件及文件夹列表  
   
    NSString *documentDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]; 
  
    NSError *error = nil;  
    NSArray *fileList = [[NSArray alloc] init];
    
    //fileList便是包含有该文件夹下所有文件的文件名及文件夹名的数组  
    fileList = [fileManager contentsOfDirectoryAtPath:documentDir error:&error];  
    
    //以下这段代码则可以列出给定一个文件夹里的所有子文件夹名  
    
    NSMutableArray *dirArray = [[NSMutableArray alloc] init];
    NSMutableArray *fileArray = [[NSMutableArray alloc] init];
    BOOL isDir = NO;  
    //在上面那段程序中获得的fileList中列出文件夹名  
    for (NSString *file in fileList) {  
        NSString *path = [documentDir stringByAppendingPathComponent:file];  
        [fileManager fileExistsAtPath:path isDirectory:(&isDir)];  
        if (isDir) {  
            [dirArray addObject:file];  
        }else{
            [fileArray addObject:file];
        }
        isDir = NO;  
    }  
    NSLog(@"文件夹下面的所有内容:%@",fileList);  
    NSLog(@"所有文件夹:%@",dirArray); 
    NSLog(@"所有文件:%@",fileArray); 

    
[2] Tween与Fram动画片的实现
    来源: 互联网  发布时间: 2014-02-18
Tween与Fram动画的实现

Android的实现分为两种Tween与Frame动画 Tween动画的实现是通过图片在Canvas变化的轨迹而成,而Frame动画是由一幅幅图片变换而成

1. Tween有以下几种运行轨迹

a. Alpha:透明度的变化;

    b. Scale:缩放

c. Translate:平移

d. Rotate:旋转

 

Tween通过Java代码实现:

public class TweenView extends View { 
Context context;
Animation animation; 
Bitmap bitmap; 
long durationTime = 2000; 
public TweenView(Context context) { 
super(context); this.context = context; 
bitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.gallery_photo_5); 
setFocusable(true); 
} 
@Overrideprotected void onDraw(Canvas canvas) {
  canvas.drawBitmap(bitmap, 100, 100, null); 
} 
// 透明度的变化 
private void alpha() { 
animation = new AlphaAnimation(0.1f, 1); animation.setDuration(durationTime); 
this.startAnimation(animation); 
} 
// 缩放 
private void scale() {
 //在scale中,该处是相对绝对位置的,绝对位置是(0,0),好像设置相对parent没有什么效果 
animation = new ScaleAnimation(1, 0.4f, 1, 0.5f, getWidth() / 2, 0); animation.setDuration(durationTime); 
this.startAnimation(animation); 
} 
// 平移 
private void tran() { 
// Animation.RELATIVE_TO_PARENT,相对于父容器 
// Animation.RELATIVE_TO_SELF,相对于自己 
// Animation.ABSOLUTE,绝对位置 
animation = new TranslateAnimation(Animation.RELATIVE_TO_PARENT, 0, Animation.RELATIVE_TO_PARENT, getWidth(), Animation.RELATIVE_TO_PARENT, 0, Animation.RELATIVE_TO_PARENT, getHeight()); 
animation.setInterpolator(new AccelerateInterpolator()); animation.setDuration(durationTime); 
this.startAnimation(animation); 
} 
// 旋转 
private void rotate() { 
//前面两个参数设置从什么角度旋转到什么角度,从小角度到大角度时,顺时针旋转 
animation = new RotateAnimation(0, 360, Animation.RELATIVE_TO_PARENT, 0.5f, Animation.RELATIVE_TO_PARENT, 0.5f); animation.setDuration(durationTime); 
this.startAnimation(animation); 
}
 //在Activity中调用 
public void onKeyEvent(KeyEvent ev) { 
switch (ev.getKeyCode()) { 
case KeyEvent.KEYCODE_DPAD_UP: 
alpha(); break; 
case KeyEvent.KEYCODE_DPAD_DOWN: 
scale(); break; 
case KeyEvent.KEYCODE_DPAD_LEFT: 
tran(); break; 
case KeyEvent.KEYCODE_DPAD_RIGHT: 
rotate(); break; 
   }  
 }
}
 

通过xml进行实现:

在res/anim下建立需要的xml文件

如:缩放

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:shareInterpolator="false" >
    <scale
        android:interpolator="@android:anim/decelerate_interpolator"
        android:duration="5000"
        android:fromXScale="1.0"
        android:fromYScale="1.0"
        android:pivotX="50%"
        android:pivotY="50%"
        android:toXScale="0"
        android:toYScale="0" />
</set>

在代码中进行这个加载(在给xml取名字的时候要注意,不要取的名字和android系统中的有些名字一致,如果这样,在代码中进行引用的时候,是找不到的,它不会在R中生成对应的资源引用ID的):

 AnimationUtils.loadAnimation(context, R.anim.sc_small);

 

2. Frame动画(属于帧动画,即把多张图片进行相同时间的变换得到的动画)

public class FrameView extends View {

	AnimationDrawable animationDrawable;
	Context context;
	Drawable bitDrawable;
	public FrameView(Context context) {
		super(context);
		this.context = context;
		animationDrawable = new AnimationDrawable();
		setFocusable(true);
		for(int i = 1 ; i <= 15; i++) {
			//查找资源文件的ID
			int id = context.getResources().getIdentifier("a" + i, "drawable", context.getPackageName());
			bitDrawable = context.getResources().getDrawable(id);
			//将资源文件的Drawable添加到Frame里
			animationDrawable.addFrame(bitDrawable, 500);
		}
		//是否只运行一次
		animationDrawable.setOneShot(false);
		//加入到背景中 
		this.setBackgroundDrawable(animationDrawable);
		
		/**
		//以下是从xml中加载,对应的xml在res/anim/animation_list.xml
		animationDrawable =  (AnimationDrawable) context.getResources().getDrawable(R.anim.animation_list);
		animationDrawable.setOneShot(false);
		this.setBackgroundDrawable(animationDrawable);
		**/
	}
	
	@Override
	public void onWindowFocusChanged(boolean hasWindowFocus) {
		super.onWindowFocusChanged(hasWindowFocus);
		//让视图获得焦点时,启动,默认情况下是不会启动的
		animationDrawable.start();
	}
}

   对应的XML部分的XML代码(该图片放在res/drawable下,该xml文件放在res/anim下):

   <?xml version="1.0" encoding="utf-8"?>

<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:oneshot="false" >
    <item android:drawable="@drawable/a1" android:duration="500"/>
    <item android:drawable="@drawable/a2" android:duration="500"/>
    <item android:drawable="@drawable/a3" android:duration="500"/>
    <item android:drawable="@drawable/a4" android:duration="500"/>
    <item android:drawable="@drawable/a5" android:duration="500"/>
    <item android:drawable="@drawable/a6" android:duration="500"/>
    <item android:drawable="@drawable/a7" android:duration="500"/>
    <item android:drawable="@drawable/a8" android:duration="500"/>
    <item android:drawable="@drawable/a9" android:duration="500"/>
    <item android:drawable="@drawable/a10" android:duration="500"/>
    <item android:drawable="@drawable/a11" android:duration="500"/>
    <item android:drawable="@drawable/a12" android:duration="500"/>
    <item android:drawable="@drawable/a13" android:duration="500"/>
    <item android:drawable="@drawable/a14" android:duration="500"/>
    <item android:drawable="@drawable/a15" android:duration="500"/>
</animation-list>

 


    
[3] 动态加载map代码段
    来源: 互联网  发布时间: 2014-02-18
动态加载地图代码段
			// 得到GridNo图层
			eMyLayer layerGridNo = mapWnd.GetMap().GetLayerByName("GridNo");
			centerGeo = new eMyPoint2D();
			eMyPoint CenterPix2D = new eMyPoint(mapWnd.getWidth() / 2, mapWnd
					.getHeight() / 2);
			centerGeo = mapWnd.DevToGeo(CenterPix2D);
			// 查询centerGeo这个点附近100个单位的对象
			eMyResultSet rs = layerGridNo.QueryByPoint(centerGeo, 100);
			if (rs == null) {
				return;
			}

			if (rs.HasNext()) {
				GridNo2 = rs.GetString("GRIDNO");
				System.out.println("----GRIDNO2=" + GridNo2);
				// 当前显示的地图与屏幕中心点所在地图不一致,需要加载新的地图
				if (!GRIDNO.equals(GridNo2)) {
					System.out.println("----不相等,重新加载地图!");

					// 当比例超过1500时,地图加载的比较慢,切换时提示是否需要加载新地图。
					String message = "显示当前位置的地图需要加载新的地图文件:" + GridNo2
							+ "\n您确认要加载吗?";
					// if (mapWnd.GetZoom() > 1500) {
					// AlertDialog.Builder builder = new AlertDialog.Builder(
					// MapSelectView.this);
					// builder.setMessage(message).setTitle("提示")
					// .setCancelable(false).setPositiveButton("确定",
					// new DialogInterface.OnClickListener() {
					// public void onClick(
					// DialogInterface dialog,
					// int id) {
					// // 加载新地图
					// loadNewMap();
					// }
					// }).setNegativeButton("取消", null).show();
					// }
				}
				// GRIDNO相同
				else {
				}
			}

			// 获得大类图层
			eMyLayer catetoryLayer = mapWnd.GetMap().GetLayerByName(
					bigClassName);
			// 如果图层存在,就设置可见
			if (catetoryLayer.GetName().toString() != "")
				catetoryLayer.SetVisible(true);
			// 定位到已选择的位置点
			if (px != -1 && py != -1) {
				mapWnd.ZoomTo(px, py, radio);// 定位到该点
				mapWnd.reDraw();// 那个Ondraw在redraw就会触发
				mapWnd.repaint(0, 0);
			}

			System.out.println("相等");

 


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
浙ICP备11055608号-3 iis7站长之家
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3