当前位置:  编程技术>移动开发
本页文章导读:
    ▪基于FPGA的二次雷达S形式解码和AP 24bit奇偶校验设计思路和验证        基于FPGA的二次雷达S模式解码和AP 24bit奇偶校验设计思路和验证   二次雷达就不详细介绍了,可以参照相关标准和协议。   二次雷达通讯里面分为A模式、C模式和S模式数据链等这三种通讯数.........
    ▪ 懂得自制SurfaceView代码        理解自制SurfaceView代码概述:             最近在读himi的android游戏开发专栏,其中通过前几张剖析View的继承接口类发现SurfaceView比较适合做Game Dev然后本人也动手跟着himi的代码敲了几下。最.........
    ▪ unity摄影机的切换       unity摄像机的切换方法一: camera1.depth = 0; camera2.depth = 1; ////////////////////// camera1.depth = 1; camera2.depth = 0; 方法二: camera1.enable = false; camera2.enable = true; ////////////////////// camera1.enable = true; camera.........

[1]基于FPGA的二次雷达S形式解码和AP 24bit奇偶校验设计思路和验证
    来源: 互联网  发布时间: 2014-02-18
基于FPGA的二次雷达S模式解码和AP 24bit奇偶校验设计思路和验证

   二次雷达就不详细介绍了,可以参照相关标准和协议。

  二次雷达通讯里面分为A模式、C模式和S模式数据链等这三种通讯数据链。军用模式还有。详细可以查找资料。对于二次雷达通讯方式中的重点就是解析数据。根据通讯所发生的数据链路方式,解析数据。

  由于是高速数据,其中需要使用高速AD+FPGA离散视频信号。至于报文的解析方式,很简单由于S模式数据链路使用的是PPM编码方式。对应于解码也是根据脉冲位置进行解码,实际的电路设计中可能会遇到很多问题。对于可以给我私信,不会在这里贴出。

  AP就是地址奇偶校验的方式,地址奇偶生成过程根据《民航附件10》可以知道。生成思路为M(x)*X24/G(x)。其实的思路是很简的。不便多说!!!


    
[2] 懂得自制SurfaceView代码
    来源: 互联网  发布时间: 2014-02-18
理解自制SurfaceView代码

概述:

            最近在读himi的android游戏开发专栏,其中通过前几张剖析View的继承接口类发现SurfaceView比较适合做Game Dev然后本人也动手跟着himi的代码敲了几下。最终虽然也达到了himi的运行效果。但是其中还是经过了好多疑点。现在本人将自己的理解发布出来,欢迎交流与学习


Code List:

import android.content.Context;
import android.content.Intent;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.Log;
import android.view.MotionEvent;
import android.view.SurfaceHolder;
import android.view.SurfaceHolder.Callback;
import android.view.SurfaceView;

public class LoginView extends SurfaceView implements Callback,Runnable{

	private Canvas canvas;	//定义画布对象
	private Thread thread;	//定义线程线程对应
	private int ScreenW,ScreenH;	//定义屏幕的宽度和高度
	private Paint paint;	//定义画笔对象
	private SurfaceHolder sh;	//声明SurfaceHolder对象
	private Resources resources;	//声明资源对象
	private Bitmap bitmapr;	//注册bitmap
	private Bitmap bitmapb;	//背景bitmap
	private int bp_x,bp_y;	//注册背景图宽度高�?
	private boolean flag;	
	public static String zh_k = "注册页面";
	private boolean zh_flag = true;	
	private String str_pass = "aaa";
	//初始构�?
	public LoginView(Context context) {
		super(context);
		//
		resources = this.getResources();
		bitmapr = BitmapFactory.decodeResource(resources, R.drawable.register);	//注册窗口
		bitmapb = BitmapFactory.decodeResource(resources, R.drawable.duola);	//注册背景�?
		thread = new Thread(this);
		sh = this.getHolder();
		sh.addCallback(this);
		paint = new Paint();
		paint.setColor(Color.RED);
		paint.setAntiAlias(true);	//去掉锯齿
		this.setFocusable(true);	
		this.setKeepScreenOn(true);		//设置屏幕常亮
		resources = this.getResources();
		
	}
	public void draw(){
		canvas = sh.lockCanvas();	//得到画布对象
		paint.setColor(Color.RED);
		if(null != canvas){			//在设置横屏的时候 坐标算法如下
			canvas.drawColor(Color.WHITE);
			canvas.drawBitmap(bitmapb,		
					-(bitmapb.getWidth() - ScreenW), -(bitmapb
							.getHeight() - ScreenH), paint);
			//2、3参数为x坐标和y坐标,就是位图paint的左上角位置
			canvas.drawBitmap(bitmapr, bp_x,bp_y, paint);
			sh.unlockCanvasAndPost(canvas);
		}
	}
	@Override
	public void run() {
		while(!flag){
			draw();
			try {
				thread.sleep(1000);
			} catch (Exception e) {
				Log.v("run", "error");
			}
		}
	}
	@Override
	public void surfaceCreated(SurfaceHolder holder) {
		ScreenW = this.getWidth();
		ScreenH = this.getHeight();
		bp_x = ScreenW/2-bitmapr.getWidth()/2;
		bp_y = ScreenH/2-bitmapr.getHeight()/2;
		thread.start();
	}
	@Override
	public void surfaceChanged(SurfaceHolder holder, int format, int width,
			int height) {
		
	}
	@Override
	public void surfaceDestroyed(SurfaceHolder holder) {
		
	}
	@Override
	public boolean onTouchEvent(MotionEvent event) {
		float x = event.getX();		
		float y = event.getY();
		
		if(x > bp_x+14 && x < bp_x+129){	//锁定登陆框姓名区域X轴
			if(y >= bp_y+43 && y <= bp_y+58){	//锁定登陆框姓名区域Y轴
				Intent intent = new Intent();
				intent.putExtra("name", "zhanglei");
				intent.setClass(MainActivity.instance, Register.class);
				MainActivity.instance.startActivity(intent);
			}
		}
		return super.onTouchEvent(event);
	}
}

运行效果图:


方法执行顺序:

LoginView-->surfaceCreated-->run-->draw


方法解析:

LoginView方法:

OK,我们看到LoginView其实是在初始化本View的一些全局变量,包括线程对象、位图对象。另外设置了一些效果,包括去掉锯齿等。程序中注释特别明朗

surfaceCreated方法:

本方法体中我们看到初始化了2组长度和高度。其中Sreen顾名思义我就不再解释。bp_x和bp_y指的是注册图片在屏幕中的开始坐标的位置。也就是左上角的位置[算法解析:“屏幕的一半坐标为中心点坐标-注册图片一半的像素值”]得到的就为绘制图片位图的起始位置。你明白了吗?

run方法:

run方法为thread线程开始的跑的标示,代码逻辑很简单不再解释

draw方法:

OK,本人觉得draw方法才是一个View中最核心的内容。因为它负责在屏幕上绘制内容和刷新内容。本人将himi博客的内容简单化了很多。应该很好理解吧。

拿到canvas到画两个位图其中的注释写的很清楚本人不再多说


注意:

本人在做此案例的时候遇到了1个特别棘手的问题那就是按照himi的源代码自己new的一个项目居然在paint位图的时候遇到了错乱的问题。url:

http://blog.csdn.net/zhang6622056/article/details/8781734


说明:

登陆窗口的用户名和密码的点击事件是通过重写onTouchEvent方法来实现的。锁定了相关的像素坐标区域。如果该区域被点击了就发送一个Intent。其中Intent的传参为put的那个方法,另外在AndroidManifest.xml文件中注意声明你Intent跳转的Activity


声明:本人也是一名Android新手,欢迎大家一起交流与学习。稍后本人将发布本博文的源码地址。因为公司网络不好,可能会在晚上回家之后upload上去



    
[3] unity摄影机的切换
    来源: 互联网  发布时间: 2014-02-18
unity摄像机的切换

方法一:

camera1.depth = 0;
camera2.depth = 1;
//////////////////////
camera1.depth = 1;
camera2.depth = 0;


方法二:

camera1.enable  = false;
camera2.enable = true;
//////////////////////
camera1.enable  = true;
camera2.enable  = false;

方法三:

camera1.rect  = new Rect(0,0,0,0);
camera2.rect  = new Rect(0,0,1,1);
//////////////////////
camera1.rect  = new Rect(0,0,1,1);
camera2.rect  = new Rect(0,0,0,0);

 方法四:

改camera的culling Mask


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪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