当前位置:  编程技术>移动开发
本页文章导读:
    ▪两个座标间画线        两个坐标间画线 /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);     setContentView(R.layout.main);     linearLayout = (LinearLayout) fi.........
    ▪ andriod学习札记        andriod学习笔记 根据标准tutorial,学习了android的view,里面讲layout和view合并的概念还是有点不清楚。 想起了当年学swing时的layoutManager,特别是哪个relativeLayoutManager着实让我云里雾里的,现在还.........
    ▪ 获得手机下绑定的Google账号       获得手机上绑定的Google账号 1.5和1.6的系统里没有现成的方法,因而需要用到第三方的库 /** * use 3rd package to get Google Account * * @param activity * @param requestCode */ private void getGoogleService(Activit.........

[1]两个座标间画线
    来源: 互联网  发布时间: 2014-02-18
两个坐标间画线

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    linearLayout = (LinearLayout) findViewById(R.id.zoomview);
    mapView = (MapView) findViewById(R.id.mapview);
    mapView.setBuiltInZoomControls(true);

    mapOverlays = mapView.getOverlays();        
    projection = mapView.getProjection();
    mapOverlays.add(new MyOverlay());        

}

@Override
protected boolean isRouteDisplayed() {
    return false;
}

class MyOverlay extends Overlay{

    public MyOverlay(){

    }   

    public void draw(Canvas canvas, MapView mapv, boolean shadow){
        super.draw(canvas, mapv, shadow);

        mPaint = new Paint();
        mPaint.setDither(true);
        mPaint.setColor(Color.RED);
        mPaint.setStyle(Paint.Style.FILL_AND_STROKE);
        mPaint.setStrokeJoin(Paint.Join.ROUND);
        mPaint.setStrokeCap(Paint.Cap.ROUND);
        mPaint.setStrokeWidth(2);

        GeoPoint gP1 = new GeoPoint(19240000,-99120000);
        GeoPoint gP2 = new GeoPoint(37423157, -122085008);

        Point p1 = new Point();
        Point p2 = new Point();

        path = new Path();

        projection.toPixels(gP1, p1);
        projection.toPixels(gP2, p2);

        path.moveTo(p2.x, p2.y);
        path.lineTo(p1.x,p1.y);

        canvas.drawPath(path, mPaint);
    }


    
[2] andriod学习札记
    来源: 互联网  发布时间: 2014-02-18
andriod学习笔记

根据标准tutorial,学习了android的view,里面讲layout和view合并的概念还是有点不清楚。

想起了当年学swing时的layoutManager,特别是哪个relativeLayoutManager着实让我云里雾里的,现在还不是很清楚,看看android怎么处理这个问题。有兴趣的同学留个言,还有stay tuned...


    
[3] 获得手机下绑定的Google账号
    来源: 互联网  发布时间: 2014-02-18
获得手机上绑定的Google账号
1.5和1.6的系统里没有现成的方法,因而需要用到第三方的库

/**
 * use 3rd package to get Google Account
 * 
 * @param activity
 * @param requestCode
 */
private void getGoogleService(Activity activity, int requestCode) {
	try {
		for (Method ele : Class.forName(
			"com.google.android.googlelogin.GoogleLoginServiceHelper")
			.getMethods()) {
			try {
				if (ele.getName().equals("getAccount")) {
					ele.invoke(null, activity, requestCode, true);
				}
			} catch (IllegalArgumentException e) {
				e.printStackTrace();
			} catch (IllegalAccessException e) {
				e.printStackTrace();
			} catch (InvocationTargetException e) {
				e.printStackTrace();
			}
		}
	} catch (ClassNotFoundException e) {
		e.printStackTrace();
	}
}


返回值需要用下面的方法获得
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
	if (requestCode == REQUEST_GOOGLE_ACCOUNT) {
		String key = "accounts";
		String accounts[] = data.getExtras().getStringArray(key);
		if (accounts != null && accounts[0] != null) {
			String account = accounts[0];
		}
	}
}


这个方法需要在AndroidManifest.xml里增加
<uses-permission android:name="com.google.android.googleapps.permission.GOOGLE_AUTH" />

2.0以后的版本,可以通过AccountManager来获得

/**
 * use Account Manager to get Google Account
 * 
 * @param activity
 */
private void getGoogleServiceWithAccountManager(Activity activity) {

	try {
		// declare class AccountManager
		Class MyAccountManager = Class.forName("android.accounts.AccountManager");
			
		// declare method getAccounts of AccountManager
		Method mGetAccounts = MyAccountManager.getDeclaredMethod("getAccounts");

		for (Method ele : MyAccountManager.getMethods()) {
			try {
				if (ele.getName().equals("get")) {
					// call AccountManager.get to create an instance
					Object obj = ele.invoke(null, activity);

					// call AccountManager.getAccount to get Account[]
					Object accounts[] = (Object[]) mGetAccounts.invoke(obj, null);
					if (accounts.length > 0) {
						// get the class member "name" of class Account
						Field f = accounts[0].getClass().getDeclaredField("name");

						// get the value of class member "name"
						this.mAccount = (String) f.get(accounts[0]);
					}
				}
			} catch (IllegalArgumentException e) {
				e.printStackTrace();
			} catch (IllegalAccessException e) {
				e.printStackTrace();
			} catch (InvocationTargetException e) {
				e.printStackTrace();
			} catch (NoSuchFieldException e) {
				e.printStackTrace();
			}
		}
	} catch (SecurityException e) {
		e.printStackTrace();
	} catch (ClassNotFoundException e) {
		e.printStackTrace();
	} catch (NoSuchMethodException e) {
		e.printStackTrace();
	} finally {
		returnGoogleAccount();
	}
}


考虑到程序可能在低版本的机器上运行,所以方法调用都使用了反射

附件为自己写的代码(包含第三方库文件),写得不好,请多包涵

    
最新技术文章:
▪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