Android 基础
ShaderJoy
醉心于研究一些特效(用代码来画画),曾涉猎过图形图像视频处理 、计算机视觉 、增强现实/虚拟现实等技术领域,就职于美图。
展开
-
Android 开发小技巧(1)
在android开发时需要注意以下的细节问题:1.一个显示系统可用内存的方法在进行android开发时,因为设备上的内存较小,有很多的程序在模拟器上运行没有问题,但是到了设备上就会经常因内存溢出而使程序崩溃.那么遇到这类问题应该如何解决呢?根据我的开发经验,使用一下步骤进行解决.StringBuffer sbf=new StringBuffer(); pri转载 2013-04-10 20:12:01 · 1614 阅读 · 0 评论 -
Android之SurfaceView学习
SurfaceView是视图(View) 的继承类,这个视图里内嵌了一个专门用于绘制的Surface。你可以控制这个Surface的格式和尺寸。Surfaceview控制这个Surface的绘制位置。 surface是纵深排序(Z-ordered)的,这表明它总在自己所在窗口的后面。surfaceview提供了一个可见区域,只有在这个可见区域内 的surface部分内容才可见,可见区域外的部分转载 2013-04-10 21:20:34 · 1829 阅读 · 0 评论 -
简单的手指绘图并保存所绘图片【源码】
public class SimpleFingerDraw extends Activity implements OnTouchListener, OnClickListener{ ImageView imageView; Button choosePicture, savePicture; Bitmap bitmap; Bitmap alteredBitmap; Canvas原创 2013-03-27 16:41:06 · 2253 阅读 · 0 评论 -
Andriod绘图的基础知识
1.位图的配置ALPHA_9:用于作为Alpha蒙版的位图,只为Alph通道分配8位。没有其他颜色。ARGB_4444:为每个颜色通道分配4位,包括Alpha通道。允许表示拥有16个Alpha值的4096种不同颜色。ARGB_8888:为每个颜色通道分配8位,包括Alpha通道。允许表示拥有256个Alpha值的1670万种不同的颜色。RGB_565:5位用于红色通道,6位用于绿色原创 2013-03-27 14:01:34 · 1982 阅读 · 0 评论 -
利用MediaStore检索图像+利用ExitInterface修改EXIF信息
利用MediaStore检索图像由于ContentProvider(当前为MediaStore)在应用程序之间是共享的,且大多数应用程序默认使用MediaStore,因此可以利用它来建立自己的图像库应用程序。MediaStore和所有的内容提供器都以一种类似数据库的方式运作。从它们中选择记录,获得一个Cursor对象,并通过它来遍历结果。1.首先创建一个打算返回列的字符串数组。对于Me原创 2013-03-23 19:34:28 · 1875 阅读 · 0 评论 -
Android保持屏幕常亮的两种方法
保持屏幕常亮的两种方法:我们大家在用手机的时候,会遇到这样的一个问题,就是想让我们的手机屏幕一直亮着怎么办。大家会想到的是,在手机设置里有一个不省电模式,选择这个就可以了,但是我们要在代码中是怎么样办那,有两种方法就可以解决这个问题。第一种方法:大家想一想,我们在android里那个地方老是常定义权限呀,有了这个提示,大家就会想到是哪个文件了吧,AndroidManifest.转载 2013-03-28 15:12:07 · 12142 阅读 · 0 评论 -
如何将资源ID转换成Uri+Android的MIME类型
如何将资源ID转换成Uri:尽管资源ID非常适合某些目的,但它们并不适合所有的目的。然而Android可以通过使用Uri来完成许多事情,幸运的是,很容易为一个已经放置在资源中的文件构造Uri。可以通过将资源ID附加到一个字符串的末尾来构造Uri。该字符串必须以android.resource://开头,随后是资源所在的应用程序的程序包名称,再后面是文件的资源ID。以下是一个示例:Uri原创 2013-04-03 20:16:39 · 2987 阅读 · 0 评论 -
跟踪手指在屏幕上的位置生成音频样本并播放
此示例根据用户手指在屏幕的x轴方向上的位置,来选择频率并生成音频样本。因为代码比较简单,那么话不多说,直接上代码。public class FingerSynthesis extends Activity implements OnTouchListener{ AudioSynthesisTask audioSynth;//播放音频样本的线程 static final float原创 2013-04-09 15:00:44 · 1862 阅读 · 0 评论 -
Adnroid上的简单图像合成类——PorterDuffXfermode
图像合成,是将两幅退昂放在一起的动作,它使得我们能够同时看到两幅图像的特征。我们可以首先在Canvas对象上绘制一个位图对象,然后再相同的Canvas对象上绘制第二个位图对象的方式来实现合成。不过这里在绘制第二幅图像的时候,需要在Paint对象上指定一个过渡模式(Xfermode)。可用作过渡模式的类集合都继承自Xfermode基类,而其中包括一个成为PorterDuffXfermode的原创 2013-03-26 18:28:13 · 6072 阅读 · 2 评论 -
Android 中的AsyncTask的简单使用心得
在android程序中一定不能阻塞UI线程,否则很容易就会弹出no respond 的对话框,导致程序退出。为了避免这种情况,一般需要较长时间执行的任务都放在线程中去执行,如从网上下载图片在界面的某个区域显示。但是使用线程回导致cpu开销过大,并且当线程管理不好时也会弹出no respond框。android提供了AsyncTask类用来处理这种情况;例如需要下载图片,然后在songImagBut转载 2013-04-11 14:10:21 · 5422 阅读 · 0 评论 -
ProgressDialog的用法示例
1.新建Android项目 ProgressDialog 在包andorid.huada下建文件ProgressDialogActivity.java2.ProgressDialogActivity.java代码如下package android.huada;import android.app.Activity; import android.app.P转载 2013-04-11 14:39:58 · 1773 阅读 · 0 评论 -
android 中判断WiFi是否可用的“可靠”方法
在一些程序中,需要从网上下载数据,或者通过其他方式对网络产生流量,当wifi不可用时应该提示用户wifi已经不可用了,是否继续,因为如果wifi掉了,那么程序可能采用3G卡或其他的收费的渠道使用网络,会导在不知情时产生大量的上网费用。通过查看android的api可使用下列方法进行判断:Java代码 public static boolean isWiFiActive(Contex转载 2013-04-11 15:22:31 · 1963 阅读 · 0 评论 -
JNI调用C计算代码执行时间(毫秒)
#include #include #include #include "caltime_Jni.h"JNIEXPORT jlong JNICALL Java_caltime_Jni_calculateTime(JNIEnv *e, jobject jo){long start, end;int i,j,k;long a;//start timestart = clock()转载 2012-12-15 22:10:37 · 3075 阅读 · 0 评论 -
总结:android 创建快捷方式的两种方式+判断是否已经创建+删除快捷方式
1. 在清单文件里面进行注册:例如: <activity android:name="com.android.master.legend.widget.CreateSystemSettingsWidgetActivity" android:exported="true" android:icon="@drawable/原创 2013-06-06 22:47:11 · 17098 阅读 · 4 评论 -
Android 开发小技巧(2)
转自:农民伯伯: http://www.cnblogs.com/over140/ 常用代码 7.1 在当前Activity中启动另外一个Activity startActivity(new Intent(this,目标Activity.class)); 7.2 从当前ContentView从查找控件 (B转载 2013-04-10 20:38:24 · 1923 阅读 · 0 评论 -
ViewFlipper的使用
看一下类的继承结构,我们可以明白很多。java.lang.Object ↳android.view.View ↳android.view.ViewGroup ↳android.widget.FrameLayout ↳转载 2013-04-14 08:28:10 · 1656 阅读 · 0 评论 -
Android ImageButton 使用Selector的简单示例
一般情况下,我们可以用ImageButton来显示一个Button按钮。然而,有些时候我们想按钮的状态发生变化,比如按下前是一个样子,按下后又是另一个样子,Android允许我们改变按钮的形象取决于不同的状态,如按钮是集中或按钮被按下。下面具体讲述如何实现:P.S This project is developed in Eclipse 3.7, and tested with Andro转载 2013-04-13 20:47:12 · 1864 阅读 · 0 评论 -
补间动画基础备忘(1)
补间动画就是我们只需要指定动画的第一帧和最后一帧,其能够自动生成中间图像的一种动画。Android SDK提供了4种补间动画效果:移动、缩放、旋转、透明度移动补间动画:移动是最常见的动画效果.我们可以通过配置动画文件(xml文件)或Java代码来实现补间动画的移动效果.通过动画文件的方式:补间动画文件需要放在res\anim目录中.在动画文件中通过标签设置移动效果.原创 2013-04-13 10:52:56 · 1644 阅读 · 0 评论 -
Android 高级绘图
我们已经介绍了Canvas,在那里,已经学习了如何创建自己的View。在第7章中也使用了Canvas来为MapView标注覆盖。画布(Canvas)是图形编程中一个很普通的概念,通常由三个基本的绘图组件组成:Canvas 提供了绘图方法,可以向底层的位图绘制基本图形。Paint 也称为"刷子",Paint可以指定如何将基本图形绘制到位图上。Bitmap 绘图的表面。转载 2013-02-01 19:08:12 · 1966 阅读 · 4 评论 -
Android常用URI收藏
以下是常用到的Intent的URI及其示例,包含了大部分应用中用到的共用Intent一、打开一个网页,类别是Intent.ACTION_VIEWUri uri = Uri.parse("http://www.android-study.com/");Intent intent = new Intent(Intent.ACTION_VIEW, uri);二、打开地图并定位到转载 2013-04-12 13:07:05 · 1639 阅读 · 0 评论 -
Android中的Matrix类与ColorMatrix类
1.Matrix.Android API中有一个Matirx类,当在现有位图对象上进行绘制或从另一个位图对象创建某个位图对象时,可以使用该类。这个类可以让我们对位图进行旋转、裁剪、缩放、平移等操作。Matrix类是以9个float型数字的一维数组表示的。每个数字都对应于图像上每个点的3个坐标(x,y或z)之一。Matrix matrix = new Matrix();matrix.s原创 2013-03-26 14:13:34 · 2197 阅读 · 0 评论 -
使用Bitmap.createBitmap遇到的问题
Bitmap.java中createBitmap函数调用的是以下重构方法public static Bitmap createBitmap(Bitmap source, int x, int y, int width, int height, Matrix m, boolean filter) { checkXYSign(x, y);原创 2013-03-26 11:59:57 · 8414 阅读 · 1 评论 -
Android的SD卡文件读写的帮助类——FileHelper,以及查询SD卡是否存在及其容量的方法
FileHelper.java是文件的帮助类,完成文件创建、删除、读。在开始之前别忘了加权限: public class FileHelper { private Context context; /** SD卡是否存在**/ private boolean hasSD = false; /** SD卡的路径**/ priva转载 2013-03-21 16:29:34 · 2522 阅读 · 0 评论 -
Android 判断应用 第一次安装启动
在Android中,在应用第一次启动或者应用的新版本的第一次启动的时候,为了判断应用是首次启动应用程序,最简单的方法,就是:1、从manifest中读取到android:versionCode,2、然后将其与preference中的versioncode做比较,3、当preference中的versioncode小于manifest中的版本号时,则代表此次启动为该版本的首次转载 2013-03-30 13:34:32 · 4504 阅读 · 0 评论 -
Android的Handler总结
一、Handler的定义: 主要接受子线程发送的数据, 并用此数据配合主线程更新UI. 解释: 当应用程序启动时,Android首先会开启一个主线程 (也就是UI线程) , 主线程为管理界面中的UI控件,进行事件分发, 比如说, 你要是点击一个 Button, Android会分发事件到Button上,来响应你的操作。 如果此时需要一个耗时的操作,例如转载 2013-03-14 20:52:31 · 1375 阅读 · 0 评论 -
AsyncTask(异步任务)的用法
在开发Android应用时必须遵守单线程模型的原则: Android UI操作并不是线程安全的并且这些操作必须在UI线程中执行。在单线程模型中始终要记住两条法则:1. 不要阻塞UI线程 2. 确保只在UI线程中访问Android UI工具包 当一个程序第一次启动时,Android会同时启动一个对应的主线程(Main Thread),主线程主要负责处理与UI相关的事件,如:用户的按键转载 2013-03-14 16:22:21 · 1681 阅读 · 0 评论 -
关于Android下常用布局的LayoutParams的用法
最近为各个布局下的水平垂直居中搞烦了。因为是动态构建的布局,一些在XML里面很好写的居中,动态JAVA代码里不知道么样实现,今天终于再了解了其中的意思。 首先第一点也是最先应该了解的: setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));这转载 2013-01-20 20:04:20 · 1785 阅读 · 0 评论 -
有关位图的几点总结
位图是我们开发中最常用的资源1. 从资源中获取位图可以使用BitmapDrawable或者BitmapFactory来获取资源中的位图。首先,需要获取资源:Resources res=getResources();(1)使用BitmapDrawable获取位图// 读取InputStream并得到位图InputStream is=res.openRawResource(R转载 2013-01-30 19:41:39 · 1520 阅读 · 0 评论 -
android开发之字符串数组资源(string-array)
String-Array可被应用程序引用的字符串数组。注意:字符串数组是简单类型资源,是用名称(而非XML文件名)来直接引用的。因此,在一个XML文件里,可以把字符串数组资源和其他简单类型资源一起放入一个元素下。文件位置res/values/filename.xml文件名可随意指定。元素的名字name将被用作资源ID。 编译后资源的数据类型指向S转载 2013-01-14 18:03:11 · 3254 阅读 · 0 评论 -
Android手势:单指拖动、双指缩放图片
原创文章,转载请注明:转载自ian的个人博客[http://www.icodelogic.com]本文链接地址: http://www.icodelogic.com/?p=601手势其实是一个比较复杂的东西,首先是因为处理的时机。Android中触摸屏的事件其实只有ACTION_DOWN、ACTION_MOVE和ACTION_UP这三种,当然我们实现手势的逻辑时,一般会用到Gest转载 2013-01-24 17:53:25 · 2509 阅读 · 5 评论 -
Android SD卡的基本操作【备忘】
sdcard读写 默认android系统对每个app都开放读写功能。默认路径为/mnt/sdcard/ 或者/sdcard/ 写外部存储即sdcard的权限打开关闭sdcard的权限http://www.itivy.com/android/archive/2011/7/4/android-sd-card-operation-file-and-capacity-compu转载 2013-03-18 14:54:15 · 1549 阅读 · 0 评论 -
Android系统自带图标
Android系统中自带了很多图标,我们的程序可以方便使用。 Android™ 1.5 android.R.drawable 图标资源 http://since2006.com/android/1.5-drawables.php Android™ 1.6 android.R.drawable图标资源 http://since2006.com/android/1.6-转载 2013-03-18 19:30:51 · 1712 阅读 · 0 评论 -
ViewPager使用方法及子View的获取
public class ViewPager_2Activity extends Activity{ private List listViews; private ViewPager viewPager; /** Called when the activity is first created. */ @Override public void onCreate(Bundle s转载 2013-04-01 18:19:12 · 3414 阅读 · 0 评论 -
使用AudioRecord和AudioTrack来录制和播放音频
1.使用AudioRecord录制原始音频除了通过意图启动录音机和使用MediaRecorder之外,Android还提供了第三种方法来捕获音频:使用成为AudioRecord的类。AudioRecord是三种方法里最灵活的(因为允许访问原始音频流),但是它拥有的内置功能也是最少的,如不会自动压缩音频。使用AudioRecord的基础知识非常简单。我们只需要构造一个AudioRecord类原创 2013-04-08 21:21:27 · 4792 阅读 · 2 评论 -
简易的android 通话录音实现【只能录制MIC的声音,不能录制对方的声音】
因受系统限制,只能录自已麦的声音,录不到对方的声音,可能需要改内核才能实现双向录音;接通电话和挂断电话时,震动一下;使用广播接收者实现自启动; public class phoneService extends Service { @Override public IBinder onBind(Intent arg0) { // TODO转载 2013-04-07 14:48:42 · 5727 阅读 · 2 评论 -
使用内置摄像头并优化显示结果大图片的方法
1.将BitmapFactory.Options.inJustDecodeBounds变量设置为true,这表示通知BitmapFactory类只需返回该类图像的范围,而不用解码图像本身。使用此方法,BitmapFactory.Options.outHeight和BitmapFactory.Options.outWidth变量将会被赋值。2.通过给内置的Camera应用程序传递一个附加值(该附原创 2013-03-23 15:37:18 · 1841 阅读 · 0 评论 -
如何将android 应用安装到SD卡上
从android api level 8(即andrid 2.2)后,允许将应用程序安装到外置储存设备(如sd卡)中,通过AndroidManifest.xml文件中manifest的android:installLocation属性设置: 此属性可以有preferExternal、auto、internalOnly,可选。preferExternal表示首选安装到外置储存设备(转载 2013-04-07 14:59:18 · 2679 阅读 · 0 评论 -
绑定服务后台播放音频的简单示例
1.服务当应用程序不再位于前台且没有正在使用它的活动的时候,为了确保音频继续播放,我们需要创建一个服务。服务是安卓应用程序的一个组件,其用于在后台运行任务,而无须与用户交互。2. 本地服务与远程服务安卓中存在几个可用的不同服务类。本地服务(Local Service):作为特定应用程序的一部分存在,而且只能通过该应用程序访问和控制。远程服务(Remote Service):是另一种类型原创 2013-04-06 10:22:48 · 2259 阅读 · 0 评论 -
基于网络音频的Android播放程序简单示例
随着发布MP3文件、播客以及流式音频变得越来越受欢迎,构建可以利用这些服务的音频播放程序的需求也越来越强烈。幸运的是,Android拥有丰富的功能用于处理网络上存在的各种类型的音频。1.基于HTTP音频播放这是最简单的的情况,仅仅播放在线的、可通过HTTP对其进行访问的音频文件。比如http://www.mobvcasting.com/android/audio/goodmorningan原创 2013-04-06 21:20:05 · 4553 阅读 · 0 评论 -
通过MediaStore浏览音频
使用MediaStore提供器访问存储的音频文件,将使用android.provider.MediaStore.Audio程序包。为了使用MediaStore,需要指定想要返回的数据。可以通过使用在android.provider.MediaStore.Audio.Media类中定义的常量创建一个字符串数组来实现该操作。这些常量都是保存在MediaStore中以用于音频的标准字段。String原创 2013-04-05 22:01:19 · 3351 阅读 · 0 评论