`
ming_fanglin
  • 浏览: 224581 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android 学习笔记(二) 各种技巧小知识

阅读更多
1,返回图片名称列表
context.getResources().getAssets().list("image")


2,确认图片名字,拿到bitmap
InputStream inputStream = context.getResources()
								.getAssets().open("image/" + url);
						bitmap = BitmapFactory.decodeStream(inputStream);


3,判断是否已存在文件
context.getFileStreamPath(file).isFile()


4,写文件
# 保存的模式:   
#          *  使用context中的文件输出流它有四种模式: 
#          *  文件读写的操作模式: 
#          *      Context.MODE_PRIVATE=0:只能是当前的应用才能操作文件 如果创建的文件已经存在 新内容覆盖原内容 
#          *      Context.MODE_APPEND=32768:新内容追加到原内容后 这个模式也是私有的 这个文件只能被创建文件的应用所访问 
#          *      Context.MODE_WORLD_READABLE=1:允许其他应用程序读取本应用创建的文件 
#          *      Context.MODE_WORLD_WRITEABLE=2:允许其他应用程序写入本应用程序创建的文件,会覆盖原数据。              
HttpURLConnection conn;
			try {
				conn = (HttpURLConnection) myFileUrl.openConnection();
				conn.setDoInput(true);
				conn.connect();
				InputStream is = conn.getInputStream();

				FileOutputStream output = context.openFileOutput(
						"filename",
						Context.MODE_PRIVATE);
				int ch = 0;
				int max = 1;
				byte[] buffer = new byte[max];
				while ((ch = is.read(buffer, 0, max)) != -1) {
					output.write(buffer, 0, ch);
				}
				output.close();
				is.close();} catch (IOException e) {
				e.printStackTrace();
				Toast.makeText(context, "错误!", Toast.LENGTH_SHORT).show();
			}


5,image.mutate()
mutate()方法是让图片资源mutable,内部工作原理应该就是克隆了一份自己。

6,handle 发送消息
mHandler.sendMessage(mHandler.obtainMessage());


7,图片渐变效果实现思路
利用消息机制,递归设置图片的透明度,用一个变量标识是否已经完全显示。

8,handle 消息机制,非UI线程调用
这些handler只要用了default的Looper,他们之间就能通信。

9,图片写文字
public static Bitmap drawTextAtBitmap(Bitmap bitmap, String text) {
		int x = bitmap.getWidth();

		int y = bitmap.getHeight();

		// 创建一个和原图同样大小的位图
		Bitmap newbit = Bitmap.createBitmap(x, y, Bitmap.Config.ARGB_8888);

		Canvas canvas = new Canvas(newbit);

		Paint paint = new Paint();

		// 在原始位置0,0插入原图
		canvas.drawBitmap(bitmap, 0, 0, paint);

		paint.setColor(Color.RED);

		paint.setTextSize(10);

		// 在原图指定位置写上字
		canvas.drawText(text, 2, 20, paint);

		canvas.save(Canvas.ALL_SAVE_FLAG);

		// 存储
		canvas.restore();

		return newbit;

	}


10,函数反射调用(通过函数名调用)
try {
			Class cla = Class.forName("com.android.util.AllAndroidMethod");
			Object cObject = cla.newInstance();
			Method[] methodlist = cla.getDeclaredMethods();
			for (Method method : methodlist) {
				if (method.getName().equalsIgnoreCase(methodNameString)) {
					Class pts[] = method.getParameterTypes();
					Method method2 = cla.getDeclaredMethod(method.getName(),
							pts);

						method2.invoke(cObject, arg0, list);
					
						method2.invoke(cObject, arg0, arg1, list);
					
						method2.invoke(cObject, arg0, arg1);
					
						method2.invoke(cObject, arg0);

				}
			}

		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (InstantiationException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SecurityException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IllegalArgumentException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (NoSuchMethodException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (InvocationTargetException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}


11,基站定位的一点
 public void onCreate(Bundle savedInstanceState) {   
        super.onCreate(savedInstanceState);   

		int cid = -1;
		int lac = -1;
		int nbid = -1;
		int nbrssi = -1;

		TelephonyManager tm  = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
		GsmCellLocation gcl = (GsmCellLocation)tm.getCellLocation();
		if(gcl != null)
		{
			cid = gcl.getCid();
			lac = gcl.getLac();
		}

		NeighboringCellInfo nbinfo = new NeighboringCellInfo();
		nbid = nbinfo.getCid();    //获取邻居小区号
		nbrssi = nbinfo.getRssi(); //获取邻居小区信号强度

		TextView tv = new TextView(this);
		String str = "CellID = " + cid + ", Lac = " + lac + ", nbid = " + nbid + ", nbrssi = " + nbrssi;
		tv.setText(str);
		setContentView(tv);
    }
3
1
分享到:
评论

相关推荐

    Android 学习笔记

    这篇学习笔记主要涵盖了关于布局的一些基本概念,特别是`fill_parent`和`wrap_content`这两种尺寸指定方式,以及如何通过XML布局文件来精确控制组件的位置。 首先,`fill_parent`和`wrap_content`是Android布局中的...

    android 开发笔记

    总之,这份"Android开发笔记"是一套全面的学习资源,涵盖了从基础到进阶的Android开发知识,特别关注在real6410开发板上的实践。通过深入阅读并实践这些教程,开发者不仅可以提升Android应用开发技能,还能掌握在...

    android学习笔记之二

    在“android学习笔记之二”中,我们主要探讨的是如何在Android平台上实现一个用户登录的模拟工程。这个项目,名为“UserLoginTestProject”,旨在帮助开发者理解和实践Android应用中的用户认证流程。通过这个实例,...

    android 很好的学习笔记

    【Android学习笔记详解】 在移动应用开发领域,Android操作系统占据着重要的地位,为开发者提供了丰富的平台和无限的可能性。"Android很好的学习笔记"是一份专为初学者设计的资源,旨在帮助那些想要踏入Android开发...

    ANDROID STUDIO 个人学习笔记

    1. Android Studio学习笔记的概览 - 笔记是作者在Android Studio 3.2版本上进行安卓开发学习时遇到的问题记录,涵盖三个多月的学习心得。 2. Android颜色设置 - 学习如何在Android应用中设置和使用颜色,颜色的...

    android 学习笔记整理

    在Android学习过程中,掌握基础知识是至关重要的。这份"android 学习笔记整理"包含了作者在学习Android时积累的详尽资料,旨在为初学者提供一个系统化的学习路径和参考资料。 首先,Android是一种开源的操作系统,...

    MONO FOR ANDROID学习笔记全套

    总之,《Mono for Android学习笔记全套》是一份全面的学习资源,覆盖了从入门到进阶的所有重要知识点,为开发者提供了一条从.NET世界无缝过渡到Android开发的道路。通过深入学习和实践,开发者可以充分利用C#的优势...

    android学习笔记1

    在Android开发过程中,持续学习和实践是提升技能的关键,"Android学习笔记1"这样的资源可以帮助开发者巩固理论知识,并通过实际代码加深理解。在遇到问题时,查阅官方文档、社区论坛(如Stack Overflow)和开发者...

    Android 系统知识总结+培训课程+笔记

    这个“Android系统知识总结+培训课程+笔记”包含了一系列深入学习Android开发的重要资料,涵盖了从基础到高级的各种主题,适合Android开发者或者对Android系统有兴趣的学习者使用。这份资料可能与在青岛巴黎春天广场...

    Android代码笔记齐全

    在Android开发领域,掌握核心知识点和实践技巧是至关重要的。这份"Android代码笔记齐全 入门教程"显然是一个全面的学习资源,旨在帮助初学者逐步掌握Android应用开发的基础和进阶内容。下面,我们将深入探讨这些知识...

    Android学习笔记总结初学者必看.rar_Android java_android

    在Android学习之旅中,初学者会遇到各种概念和实践技巧,这份"Android学习笔记总结初学者必看"的文档正是为了帮助他们系统性地掌握这一领域。以下是对这份压缩包内容的详细解读。 首先,Android是由Google开发的一...

    android全程学习笔记

    Android全程学习笔记旨在提供一个详尽且全面的指南,涵盖了Android开发中的关键技术点和实践案例。以下是关于Android开发的一些核心知识点: 1. **第一个Android应用**:开发Android应用的起点通常是从创建并运行你...

    android基础笔记

    总之,Android基础笔记旨在帮助初学者掌握Android开发的基本技能,通过学习这些知识点,开发者能够构建出功能完善的Android应用程序。随着对Android系统理解的深入,开发者还可以探索更多高级特性,如多媒体处理、...

    Android知识系统总结

    其次,Android学习笔记可能是对Android SDK、API级别的详细解析,或者是特定主题的深入探讨,比如Activity生命周期、Intent机制、权限管理、动画效果、布局优化等。这些笔记有助于巩固理论知识,并提供快速查找和...

    android学习笔记3(联系人应用)

    这篇“android学习笔记3(联系人应用)”可能涉及了如何理解和操作Android系统的联系人应用相关的源码,以及可能使用的开发工具。下面将详细阐述与这个主题相关的知识点。 一、Android联系人应用架构 Android的联系人...

    android 学习笔记

    Android是谷歌公司推出的一款..."Android学习笔记"中的内容可能还包括实例项目、实战案例分析以及面试常见问题解答,帮助读者将理论知识转化为实际技能。通过系统地学习和实践,可以逐渐成为一名熟练的Android开发者。

    android 非常全培训笔记

    它包含了从小实例到实际应用的各种实践,帮助初学者逐步深入理解Android系统的工作原理和开发技巧。下面我们将详细探讨其中可能涵盖的关键知识点。 1. **Android基础知识**:这包括对Android系统的架构、应用程序...

Global site tag (gtag.js) - Google Analytics