android
文章平均质量分 65
minigeek
让编程改变世界,让梦想创造奇迹。
展开
-
android开发笔记之多媒体—播放音频(音乐)
Android应用增加动画,视频,音乐等多媒体功能,因此为手机提供音频录制,播放,视频录制,播放的功能十分重要。Android提供了常见音频,视频的编码,解码机制,Android支持的音频格式有MP3,WAV和3GP等,支持的视频格式有MP4和3GP等。Android提供了这些多媒体的支持类,可以非常方便地在手机应用中播放音频,视频等。这些多媒体数据可以来自Android应用的资源文件,也可以来自外原创 2016-05-14 23:44:36 · 1239 阅读 · 0 评论 -
android开发笔记之多线程下载及断点续传
今天我们来接触一下多线程下载,当然也包括断点续传,我们可以看到 很多下载器,当开通会员的时候下载东西的速度就变得快了许多,这是为什么呢?这就是跟今天讲的多线程有关系了,其实就是多开了几个线程一起下载罢了。当然真正的多线程下载要比这个复杂,要考虑很多问题。做个不恰当的比喻:假如我们把一个服务器上的文件看作是一个水缸里的水的话,那么多线程下载就相当于从水缸上打了多个小孔,然后塞进去小管道进行抽水。呵呵原创 2016-06-02 16:22:23 · 6574 阅读 · 13 评论 -
android开发笔记之ViewPager新手导航页(动态加载指示器)
今天我们来讲个老生常谈的话题,估计大家都用过的—>ViewPager,用它来做新手导航页面,虽然这次也是讲这个,但是和以往的用法可能有些不同,大家都看到标题进来的,应该知道的是:动态加载指示器。什么叫动态加载呢,是不是感觉很高大上呢,其实呢就是动态的去加载指示器的数量的,而不是在布局文件中写死。希望看了这篇文章大家对ViewPager有新的认识。看到这个效果大家应该都很不屑吧,今天讲这个就是为了让大原创 2016-05-19 23:55:37 · 2496 阅读 · 0 评论 -
android开发笔记之 Activity四种加载模式
既然是安卓开发,我们就免不了和Activity打交道,因为它是前台的界面,也是android四大组件之一,那我们就来谈谈Activity的四种加载模式。为什么要为Activity指定加载模式?Android对Activity的管理,采用Task(即栈)来管理多个Activity,当我们启动一个应用时,Android就会为之创建了一个Task,然后启动这个应用的入口Activity。Android的T原创 2016-05-10 02:15:56 · 3626 阅读 · 1 评论 -
android开发笔记之自定义开关按钮
今天来讲讲自定义单个控件,就拿开关按钮来讲讲,相信大家见了非常多这样的了,先看看效果:我们可以看到一个很常见的开关按钮,那就来分析分析。首先:这是由两张图片构成:①一张为有开和关的背景图片②一张为控制开和关的滑动按钮第一步:写个类继承View,并重写几个方法:第一个为构造函数,重写一个参数的函数和两个参数的函数就够了,因为两个参数的函数能够使用自定义属性第二个为控制控件的大小–>protected原创 2016-05-19 01:03:00 · 6926 阅读 · 5 评论 -
android开发笔记之Android介绍
一、什么是3G?3G,全称为3rd Generation,中文含义就是指第三代数字通信。所谓3G,是指将无线通信与国际互联网等多媒体通信结合的新一代移动通信系统。 3G只是一种通信技术标准,符合这个标准的技术有WCDMA、CDMA2000、TD-SCDMA三种无线接口标准。中国联通使用的是WCDMA(世界上大部分3G网络都采用的是该标准)中国电信使用的是CDMA原创 2016-04-17 15:45:33 · 958 阅读 · 0 评论 -
android开发笔记之虚拟机
Dalvik VM和JVM的区别Dalvik VM优点:编译时优化代码,而不是在运行时,将多个文件整合成一个,整体减少文件个数 I/O 操作,提高类查询的速度,因为常量池的引入。原创 2016-04-17 16:33:58 · 613 阅读 · 0 评论 -
android开发笔记之Android开发环境搭建
一、安装JDK JDK1.6以上 ①先下载JDK http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html 下载好后就直接安装。 ②配置JDK的环境变量 a.JAVA_HOME:C:\Program Files\Java\jdk1原创 2016-04-20 09:53:40 · 616 阅读 · 0 评论 -
android开发笔记之自定义组合控件
今天我们来讲一下自定义组合控件,相信大家也接触过自定义组合控件吧,话不多说,直接干(哈~哈~):大家看到这个觉得这不是很简单的吗,这不就是写个布局文件就搞定嘛,没错,确实直接上布局就行,不过,我只是用这个简单的例子来讲一下自定义组合控件的用法。首先看看,这一行行的条目看起来都长得差不多,只是图片和文字不一样,没错,就是看中这一点,我们可以把一个条目做成一个组合控件,做为一个整体,这样不管你有几个条目原创 2016-05-17 00:16:06 · 2165 阅读 · 0 评论 -
android开发笔记之网络编程—使用TCP协议和URL进行网络编程
手机本身是作为手机终端使用的,因此它的计算能力,存储能力都是有限的。它的主要优势是携带方便,可以随时打开,而且手机通常总是处于联网状态。因此网络支持对于手机应用非常重要。Android完全支持JDK本身的TCP,UDP网络通信API,也可以使用ServerSocket,Socket来建立基于TCP/IP协议的网络通信,也可以使用DatagramSocket,Datagrampacket来建立基于UD原创 2016-06-02 17:56:57 · 5022 阅读 · 0 评论 -
android开发笔记之网络编程—使用HTTP进行网络编程
上次我们讲到了使用URLConnection的网络编程,URLConnection已经可以非常方便地与指定站点交换信息,URLConnection下还有一个子类:HttpURLConnection。HttpURLConnection在URLConnection的基础上进行改进,增加了一些用于操作HTTP资源的便捷方法。setRequestMethod(String):设置发送请求的方法 getRe原创 2016-06-02 21:34:10 · 4401 阅读 · 0 评论 -
android开发笔记之权重(layout_weight)
我相信大家在布局文件中都用过权重(layout_weight)吧,当然这只有在线性布局(Linearlayout)中才有的,可是很多人也许都只是简单的理解为比。其实权重就是: 把屏幕剩余空间按比例分配大家先记住这句话,这里就来深入理解下权重,这里以水平排列为例(即宽度的权重),懂了水平的,竖直排列的(即高度的权重)自然同理。①第一种情况(宽度为wrap_content):a.<LinearLayo原创 2016-05-20 23:52:14 · 6194 阅读 · 7 评论 -
android开发笔记之高级主题—传感器的简单应用
上篇文章我们简单的了解了下传感器,这次我们来简单运用下——摇一摇听音乐效果:初始界面:当摇晃到一定程度的时候就跳转到播放音乐界面并播放音乐步骤:①获得传感器服务SensorManager sm = (SensorManager) getSystemService(Context.SENSOR_SERVICE);②获得加速度传感器并注册监听器sm.registerListener(this,原创 2016-06-05 15:54:02 · 3384 阅读 · 0 评论 -
android开发笔记之PULL解析xml文件
在android开发中,经常用到去解析xml文件。我们今天来学习一下XML文件的解析,在java中我们应该知道两种解析方式:DOM和SAX解析方式,我这里就不讲解DOM和SAX的解析方式了,有兴趣的同学可以向我要示例或者自己上网查查,这里重点讲解一下Android中常用并且官方推荐的方式:PULL解析方式PULL解析方式采用事件驱动进行解析的,当pull解析器,开始解析之后,我们可以调用它的next原创 2016-05-23 22:50:11 · 4530 阅读 · 3 评论 -
android开发笔记之高级主题—传感器的简单介绍
今天我们开始进入讲解android中的一些高级主题的用法,比如传感器、GPS、NFC、语音和人脸识别等。这次来对传感器的一个简单介绍:Android平台支持三大类的传感器: 位移传感器 这些传感器测量沿三个轴线测量加速度和旋转。这类包含加速度,重力传感器,陀螺仪,和矢量传感器。 环境传感器 这些传感器测量各种环境参数,例如周围的空气温度和压力,光线,和湿度。这类包含气压,光线,和温度原创 2016-06-05 15:12:00 · 7398 阅读 · 0 评论 -
android开发笔记之打造终极适配器
大家看到这个标题是不是觉得很诧异呢?什么叫终极适配器,其实就是这种适配器是万能的,所有需要使用适配器的组件,都可用这一个适配器就行。既然这样,就来讲讲吧。效果:当然这是个简单的布局,用普通的适配器也可以实现,这里只是用它来做个例子,用终极适配器的话,以后你换其他布局,适配器是不用变的,减少了很多代码。首先普通的适配器的写法是:public class MyAdapter extends BaseAd原创 2016-05-22 16:38:29 · 6864 阅读 · 11 评论 -
android开发笔记之网络编程—异步加载(AsyncTask)
看了前面的文章我们知道请求网络的几种方式:1.使用TCP协议和URL进行网络编程 a)基于TCP协议:ServerSocket,Socket b)基于URL:URL 和 URLConnection2.使用Http协议进行网络编程 a)HttpURLConnection b)HttpClient我们知道这些网络请求都应该在子线程中,不能在主线程中(因为耗时操作会原创 2016-06-03 16:28:10 · 4443 阅读 · 0 评论 -
android开发笔记之ListView的优化+分类显示
今天来讲讲在APP中90%要使用到的一个组件—–> ListView听到这,大家觉得应该是再熟悉不过了吧,当然或许很多人已经知道 ListView 的优化。我在这里就再详细的讲一遍。顺便让ListView分类显示。先来看看效果:可以看到数据有100个(0-99),奇数和偶数分类显示,并给每类数据加了一个头步骤:①在布局文件中添加ListView组件<RelativeLayout原创 2016-05-21 21:26:53 · 3083 阅读 · 0 评论 -
android开发笔记之网络编程—简易新闻客户端
今天我们来对前面讲过的知识综合运用一下,包括xml的PULL解析,listView的万能适配器等知识。。。。那先来看一个组件—->智能图片加载器(smart-image-view),它可以很方便的加载一张网络图片。SmartImageView的设计初衷是来取代Android自带的ImgageView组件,另外它还提供了一些附加功能,如:支持通过URL来加载图片;支持从电话簿中加载图片;异步加载图片;原创 2016-06-02 23:02:28 · 11250 阅读 · 7 评论 -
android开发笔记之 仿优酷圆形菜单
先来看看效果:首先来分析一下:这个菜单可以分成三个菜单:1.一级菜单(即最内圈那个菜单)2.二级菜单(即中间圈那个菜单)3.三级菜单(即最外圈那个菜单)首先,可以将这三个菜单使用相对布局一级菜单只有一个按钮(即home),可以控制二级和三级菜单二级菜单有三个按钮(即menu),中间那个按钮可以控制三级菜单三级菜单有七个按钮那先把布局文件先写出来,采用三个相对布局(即每个菜单采用一个相对布局)<Rel原创 2016-05-16 23:00:07 · 2690 阅读 · 0 评论 -
android开发笔记之 AlarmManager(闹钟服务)
手机闹钟服务AlarmManagerAlarmManager通常用来开发手机闹钟,并且它是一个全局定时器,可在指定时间或指定周期启动其他组件(包括Activity,Service,BroadcastReceiver)获取AlarmManager对象:getSystemService(Service.ALARM_SERVICE)调用其中的方式设置定时器启动指定组件:set(int type,long原创 2016-05-16 00:40:24 · 3992 阅读 · 0 评论 -
android开发笔记之 Android代码混淆打包
大家应该都听过代码混淆吧,如果大家有去反编译过别人的APK的话,应该会看到好多包名和类名是a,b.c….之类的的吧,这里就提到了一个概念:混淆。那就让我们了解下这个东西吧作用:为了防止自己的劳动成果被别人窃取,混淆代码能有效防止被反编译缺省情况下,proguard 会混淆所有代码,但是下面几种情况是不能改变java 元素的名称,否则就会这样就会导致程序出错。 一, 我们用到反射的地方。原创 2016-05-15 20:08:50 · 1898 阅读 · 1 评论 -
android开发笔记之 Android 国际化
internationalization (国际化)简称 i18n,因为在i和n之间还有18个字符localization(本地化 ),简称L10n。一般用语言_地区的形式表示一种语言,如 zh_CN, zh_TW.国家/地区语言速查表:速查1、组件显示的内容国际化 values文件夹string.xml android:text=”@string/tv” 在Android工程的res目录下原创 2016-05-15 13:38:14 · 1862 阅读 · 0 评论 -
android开发笔记之多媒体—撕衣服(开心一下)
效果图:看到是不是很激动呢,在这里讲一下原理,其实很简单,就是两张图片叠在一下,当鼠标触摸的时候改变上面那张图片的透明度就可以了。核心代码:public class MainActivity extends Activity { private ImageView iv; private Bitmap baseBitmap,copyBitmap; private Canvas原创 2016-05-14 21:24:37 · 1073 阅读 · 0 评论 -
android开发笔记之多媒体—Canvas的相关方法
——Canvas相关方法 ——画线:canvas.drawLine(20, 20, 200, 200, paint) ——画矩形:canvas.drawRect(20, 20, 200, 200, paint) ——画圆:canvas.drawCircle(250, 250, 250, paint); ——画扇形:canvas.drawArc(rectF, 0, 90, true,原创 2016-05-14 20:50:07 · 629 阅读 · 0 评论 -
android开发笔记之多媒体—图片的颜色处理
1.拿到原图baseBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.pre);2.拿到一张与原图同样大小的纸copyBitmap = Bitmap.createBitmap(baseBitmap.getWidth(), baseBitmap.getHeight(), baseBitmap.getConfig());3.原创 2016-05-14 19:47:40 · 553 阅读 · 0 评论 -
android开发笔记之多媒体—图像的操作
1.拿到原图baseBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.img_small_1);2.先拿到一张与原图一样大小的纸,内容空白copyBitmap = Bitmap.createBitmap(baseBitmap.getWidth(), baseBitmap.getHeight(), baseBitmap.g原创 2016-05-14 17:12:51 · 645 阅读 · 0 评论 -
android开发笔记之多媒体—大图片的加载
1.将图片导入到SD卡2.从SD中获取图片String path = Environment.getExternalStorageDirectory() + "/img_big_1.jpg";bitmap = BitmapFactory.decodeFile(path, options);3.为这种图片设置采样率(即压缩比)Options options = new Options();原创 2016-05-14 17:02:38 · 790 阅读 · 0 评论 -
android开发笔记之多媒体—小图片的加载
将图片放入SD卡中从SD卡取出该图片String path = Environment.getExternalStorageDirectory() + "/img_small_1.jpg";Bitmap bitmap = BitmapFactory.decodeFile(path);将图片显示到ImageView组件上iv.setImageBitmap(bitmap);核心代码:/** *原创 2016-05-14 16:32:16 · 747 阅读 · 0 评论 -
android开发笔记之多媒体—图形图像处理
——图像的两种分类: 位图 例子:单色位图(只有两种颜色(黑白),每一个像素点占一位) 256位图(每一个像素点有256个颜色,每一个像素点需要占一个字节) 24位位图(每个像素点占3个字节) 位图图像(bitmap), 亦称为点阵图像或绘制图像,是由称作像素(图片元素)的单个点组成的。这些点可以进行不同的排列和染色以构成图样。当放大位图时,可以原创 2016-05-14 16:22:31 · 2527 阅读 · 0 评论 -
android开发笔记之Gson解析
上篇我们讲了一下的Json的解析,大家有没有发现解析一个简单的Json数据都写了这么多代码,如果是一个复杂庞大的Json数据呢,那不得写好多。所以谷歌推出了一款Json解析神器——> Gson。那 Gson 是用来干嘛的呢,它是用来将Json数据转换成对象,或将对象转换成Json数据。只需要导入相应 jar 包就可以。Gson下载地址:http://download.csdn.net这次的Json数原创 2016-05-24 00:30:08 · 4730 阅读 · 1 评论 -
android开发笔记之多媒体—画画板(娱乐一下)
效果: 其实画画板的原理很简单,就是首先记录下按下屏幕的点,然后没移动一下就让这两次移动的连线,周而复始,图像就由很多条直线构成了。 核心代码 :public class MainActivity extends Activity implements OnClickListener,OnSeekBarChangeListener { private View red_view,gre原创 2016-05-14 22:51:17 · 847 阅读 · 0 评论 -
android开发笔记之多媒体—SoundPool(音效池)
使用SoundPool播放音效——如果应用程序经常需要播放密集,短促的音效。这时还用Mediaplayer就显得不合适。——MediaPlayer的缺点:资源占用量较高,延迟时间较长不支持多个音频同时播放。——SoundPool使用音效池来播放一些较短的声音片段,它的优势资源占用量低和反应延迟小。使用步骤:1.创建对象:new SoundPool(num,stream,0) 第一个参数指定支持原创 2016-05-15 00:14:22 · 1277 阅读 · 4 评论 -
android开发笔记之多媒体—VideoView播放视频
——使用VideoView播放视频 效果:使用步骤:1)在布局文件中定义VideoView的组件2)调用setVideoPath(path)指定要播放的资源或者调用setVideoURI(Uri uri)加载uri对应的视频。3)调用VideoView中的start,stop,pause方法控制视频播放4)和MediaController类一起使用,它可以提供一个友好的图形控制界面,原创 2016-05-15 01:26:08 · 3183 阅读 · 0 评论 -
android开发笔记之 国家/地区语言速查表
国家_地区语言速查表en 英文 en_US 英文 (美国) ar 阿拉伯文 ar_AE 阿拉伯文 (阿拉伯联合酋长国) ar_BH 阿拉伯文 (巴林) ar_DZ 阿拉伯文 (阿尔及利亚) ar_EG 阿拉伯文 (埃及) ar_IQ 阿拉伯文 (伊拉克) ar_JO 阿拉伯文 (约旦) ar_KW 阿拉伯文 (科威特) ar_LB 阿拉伯文 (黎巴嫩) a原创 2016-05-15 14:19:46 · 1860 阅读 · 0 评论 -
android开发笔记之多媒体—振动器(Vibrator)
振动器Vibrator手机静音时使用振动提示用户,玩游戏,当系统碰撞,爆炸时使用振动带给用户更逼真的体验。获取振动器Vibrator对象:getSystemService(Service.VIBRATOR_SERVICE)方法使用三个简单的方法来控制手机振动:vibrate(long milliseconds):控制手机振动的毫秒new long[]{1000,2000,1000,3000};vib原创 2016-05-15 12:48:06 · 702 阅读 · 0 评论 -
android开发笔记之多媒体—TelephonyManager(电话管理器)
电话管理器(TelephonyManager) 电话管理器是一个管理手机通话状态,电话网络信息的服务类。 该类提供了大量的getXxx()方法来获取电话网络的相关信息获取TelephonyManager对象的方式: context.getSystemService(Context.TELEPHONY_SERVICE);接下来就可以获取相关信息: getDeviceId():获取设备编原创 2016-05-15 12:36:52 · 1901 阅读 · 0 评论 -
android开发笔记之多媒体—AudioManager(控制音量)
AudioManager用来对音量大小,声音模式(静音,震动,震动加声音等模式)的管理 获取对象AudioManager:getSystemService(AUDIO_SERVICE)修改音量:adjustVolume(direction,flag) 修改音量adjustStreamVolume(streamType,direction,flag) 修改音频流和音量direction(“方向原创 2016-05-15 12:00:44 · 3523 阅读 · 0 评论 -
android开发笔记之多媒体—音频和视频的录制
使用MediaRecorder录制音频手机一般都提供麦克风硬件,而Android系统可以利用该硬件来录制音频了。使用MediaRecorder录制音频的步骤: 1)创建MediaRecorder对象 mediaRecorder = new MediaRecorder(); 2)调用MediaRecorder对象的setAudioSource()方法设置声音来源,一般传入Me原创 2016-05-15 11:24:48 · 2050 阅读 · 0 评论 -
android开发笔记之多媒体—MediaPlayer + SurfaceView播放视频
前面我们讲了用VideoView来播放视频,这里再介绍一种方式:MediaPlayer + SurfaceView 来播放视频,我们都知道:MediaPlayer 是用来播放音频的SurfaceView 是用来绘制界面的所以这里介绍它们结合起来就能播放视频了,话不多说使用步骤: 1)在界面的布局文件中定义SurfaceView组件。和播放按钮 2)创建MediaPlayer对象,加载指定的视频文原创 2016-05-15 11:01:50 · 1565 阅读 · 0 评论