技术改变世界 阅读塑造人生! - shaogx.com

This string was altered by TechBlog\Plugins\Example.; This is an example to show the potential of an offcanvas layout pattern in Bootstrap. Try some responsive-range viewport sizes to see it in action.

Android UI之ProgressBar

前言  开门见山,开篇明意。这篇博客主要讲解一下Android中ProgressBar控件以及间接继承它的两个子控件SeekBar、RatingBar的基本用法,因为其有继承关系,存在一些共有特性,所以在一篇博客中讲解。下面先简单描述一下这三个控件:... 全文

android android应用

Android程序的调试

刚接触Android时,就因为不知道怎么调试程序而万分苦恼,眼巴巴看着程序报错却觉得无从下手。。后来,了解深了,渐渐知道如何去调试程序。遥记起之前好像也有人问过我类似的问题,所以今天就说一下这个吧。Android的调试方式主要有两种(Eclipse环境下):... 全文

android调试 android测试

android布局属性

android:layout_alignParentRight="true" 使当前控件的右端和父控件的右端对齐。这里属性值只能为true或false,默认false。 android:layout_marginLeft="10dip" 使当前控件左边空出相应的空间。          android:layout_toLeftOf="@id/ok" 使当前控件置于id为ok的控件的左边。          android:layout_alignTop="@id/ok" 使当前控件与id控件的上端对齐。 padding表示填充,margin表示边距 可通过android:padding属性进行设置,4个方向的边距属性为android:paddingLeft, android:paddingRight, android:paddingTop, and android:paddingBottom. 结论: *android:layout_marginBottom *android:layout_marginLeft *android:layout_marginRight *android:layout_marginTop 上面几个属性的值是根据下面的相对位置的对象的值来做计算的,如果没有相对的对象就以总体布局来计算 *android:layout_below *android:layout_above *android:layout_toLeftOf *android:layout_toRightOf *android:layout_alignTop *android:layout_centerHrizontal          //是否支持横屏或竖屏 *android:layout_centerVertical             //这个根据单词的意思:中心垂直 *android:layout_centerInparent         //  android:layout_centerInParent="true"//居中在父对象 android:layout_centerInParent="false" ... 浏览器不支持多窗口显示,意思就是说所有页面在单一窗口打开,这样避免了页面布局控制显示问题 下面的相对于父的相对位置 *android:layout_alignParentBottom *android:layout_alignParentLeft *android:layout_alignParentRight *android:layout_alignParentTop *android:layout_alignWithParentIfMissingRelativeLayout用到的一些重要的属性:    第一类:属性值为true或false    android:layout_centerHrizontal  水平居中     android:layout_centerVertical   垂直居中    android:layout_centerInparent    相对于父元素完全居中    android:layout_alignParentBottom 贴紧父元素的下边缘    android:layout_alignParentLeft   贴紧父元素的左边缘    android:layout_alignParentRight  贴紧父元素的右边缘    android:layout_alignParentTop    贴紧父元素的上边缘    android:layout_alignWithParentIfMissing  如果对应的兄弟元素找不到的话就以父元素做参照物    第二类:属性值必须为id的引用名“@id/id-name”    android:layout_below      在某元素的下方    android:layout_above      在某元素的的上方    android:layout_toLeftOf   在某元素的左边    android:layout_toRightOf  在某元素的右边    android:layout_alignTop   本元素的上边缘和某元素的的上边缘对齐    android:layout_alignLeft  本元素的左边缘和某元素的的左边缘对齐    android:layout_alignBottom 本元素的下边缘和某元素的的下边缘对齐    android:layout_alignRight  本元素的右边缘和某元素的的右边缘对齐    第三类:属性值为具体的像素值,如30dip,40px    android:layout_marginBottom              离某元素底边缘的距离    android:layout_marginLeft                   离某元素左边缘的距离    android:layout_marginRight                 离某元素右边缘的距离    android:layout_marginTop                   离某元素上边缘的距离EditText的android:hint设置EditText为空时输入框内的提示信息。android:gravity android:gravity属性是对该view 内容的限定.比如一个button 上面的text.  你可以设置该text 在view的靠左,靠右等位置.以button为例,android:gravity="right"则button上面的文字靠右android:layout_gravityandroid:layout_gravity是用来设置该view相对与起父view 的位置.比如一个button 在linearlayout里,你想把该button放在靠左、靠右等位置就可以通过该属性设置.以button为例,android:layout_gravity="right"则button靠右android:layout_alignParentRight使当前控件的右端和父控件的右端对齐。这里属性值只能为true或false,默认false。android:scaleType:android:scaleType是控制图片如何resized/moved来匹对ImageView的size。ImageView.ScaleType / android:scaleType值的意义区别:CENTER /center  按图片的原来size居中显示,当图片长/宽超过View的长/宽,则截取图片的居中部分显示CENTER_CROP / centerCrop  按比例扩大图片的size居中显示,使得图片长(宽)等于或大于View的长(宽)CENTER_INSIDE / centerInside  将图片的内容完整居中显示,通过按比例缩小或原来的size使得图片长/宽等于或小于View的长/宽FIT_CENTER / fitCenter  把图片按比例扩大/缩小到View的宽度,居中显示FIT_END / fitEnd   把图片按比例扩大/缩小到View的宽度,显示在View的下部分位置FIT_START / fitStart  把图片按比例扩大/缩小到View的宽度,显示在View的上部分位置FIT_XY / fitXY  把图片不按比例扩大/缩小到View的大小显示MATRIX / matrix 用矩阵来绘制,动态缩小放大图片来显示。** 要注意一点,Drawable文件夹里面的图片命名是不能大写的。... 全文

android android应用 layout

Android开发学什么

Android开发学什么爪哇米工作室 陈跃峰2013/3/1 ... 全文

Android开发 Android外包

Android Logcat的使用

        Android Logcat使用起来可以方便的观察调试内容,基本上的使用方法(巧用Logcat调试程序)。本次要说明的是平时的Log.v Log.d Log.i Log.w Log.e的区别是什么?  一、Log.v 的调试颜色为黑色的,任何消息都会输出,这里的v代表verbose啰嗦的意思,平时使用就是Log.v("","");  二、Log.d的输出颜色是蓝色的,仅输出debug调试的意思,但他会输出上层的信息,过滤起来可以通过DDMS的Logcat标签来选择... 全文

Android开发 android开发

Android开发工具大全 Android工具Top 7

过去的2010年是Android全面爆发的一年,出众的扩展性使其成为了众多玩家的购机首选,市场占有率节节攀高。本文与大家分享七个非常有用的Android开发工具和工具包,希望对从事Android开发的朋友有所帮助。1. Android Honeycomb Stencils & Sketchsheets谷歌发布了专用于平板电脑的Android 3.0 Honeycomb系统,这个工具用于Honeycomb界面原型设计。... 全文

Android

Android环境的构建

注:这篇文章来自“博客园”的博主,个人觉得非常有价值,故借鉴在此引言 本系列适合0基础的人员,因为我就是从0开始的,此系列记录我步入Android开发的一些经验分享,望与君共勉!作为Android队伍中的一个新人的我,如果有什么不对的地方,还望不吝赐教。 在开始Android开发之旅启动之前,首先要搭建环境,然后创建一个简单的HelloWorld。本文的主题如下:... 全文

Android开发 android开发

Android开发精要3

1、概述一个应用程序的三个核心组件——activities、services、broadcast receivers,都是通过叫做intents的消息激活。Intent消息是一种同一或不同应用程序中的组件之间延迟运行时绑定的机制。intent本身(是一个Intent对象),是一个被动的数据结构保存一个将要执行的操作的抽象描述,或在广播的情况下,通常是某事已经发生且正在宣告。对于这三种组件,有独立的传送intent的机制:·        Activity:一个intent对象传递给Context.startActivity()或Activity.startActivityForRestult()去启动一个活动或使一个已存在的活动去做新的事情。·        Service:一个intent对象传递给Context.startService()去初始化一个service或传递一个新的指令给正在运行的service。类似的,一个intent可以传递给Context.bindService()去建立调用组件和目标服务之间的连接。·        Broadcast Receiver:一个intent对象传递给任何广播方法(如Context.sendBroadcast(),Context.sendOrderedBroadcast(),Context.sendStickyBroadcast()),都将传递到所有感兴趣的广播接收者。 在每种情况下,Android系统查找合适的activity、service、broadcastreceivers来响应意图,如果有必要的话,初始化他们。这些消息系统之间没有重叠,即广播意图仅会传递给广播接收者,而不会传递活动或服务,反之亦然。下面首先描述intent对象,然后介绍Android将intent映射到相应组件的规则——如何解决哪个组件应该接收intent消息。对于没有指定目标组件名字的intent,这个处理过程包括按照intent filters匹配每个潜在的目标对象。2、Intent对象一个Intent对象是一个捆信息,包含对intent有兴趣的组件的信息(如要执行的动作和要作用的数据)、Android系统有兴趣的信息(如处理intent组件的分类信息和如何启动目标活动的指令)。下面列出它的主要信息:2.1、组件名字处理intent的组件的名字。这个字段是一个ComponentName对象——是目标组件的完全限定类名(如"com.example.project.app.FreneticActivity")和应用程序所在的包在清单文件中的名字(如"com.example.project")的组合。其中组件名字中的包部分不必一定和清单文件中的包名一样。组件名字是可选的,如果设置了,intent对象传递到指定类的实例;如果没有设置,Android使用intent中的其它信息来定位合适的目标组件(见下面的Intent解析)。组件的名字通过setComponent(),setClass()或setClassName()设置,通过getComponent()读取。2.2、动作一个字符串命名的动作将被执行,或在广播intent中,已发生动作且正被报告。Intent类定义了一些动作常量,如下:  Constant    Target component    Action    ACTION_CALL    activity    Initiate a phone  call.     ACTION_EDIT    activity    Display data for  the user to edit.     ACTION_MAIN    activity    Start up as the  initial activity of a task, with no data input and no returned output.     ACTION_SYNC    activity    Synchronize data  on a server with data on the mobile device.     ACTION_BATTERY_LOW    broadcast  receiver     A warning that  the battery is low.     ACTION_HEADSET_PLUG    broadcast  receiver     A headset has  been plugged into the device, or unplugged from it.     ACTION_SCREEN_ON    broadcast  receiver     The screen has  been turned on.     ACTION_TIMEZONE_CHANGED    broadcast  receiver     The setting for  the time zone has changed.   查看更多的动作请参考Intent类。其它的动作定义在Android API中,我们还可以定义自己的动作字符串一再我们的应用程序中激活组件。自定义动作字符串应该包含应用程序报名前缀,如"com.example.project.SHOW_COLOR"。动作很大程度上决定了剩下的intent如何构建,特别是数据(data)和附加(extras)字段,就像一个方法名决定了参数和返回值。正是这个原因,应该尽可能明确指定动作,并紧密关联到其它intent字段。换句话说,应该定义你的组件能够处理的Intent对象的整个协议,而不仅仅是单独地定义一个动作。一个intent对象的动作通过setAction()方法设置,通过getAction()方法读取。2.3、数据数据(data)是将作用于其上的数据的URI和数据的MIME类型。不同的动作有不同的数据规格。例如,如果动作字段是ACTION_EDIT,数据字段将包含将显示用于编辑的文档的URI;如果动作是ACTION_CALL,数据字段将是一个tel:URI和将拨打的号码;如果动作是ACTION_VIEW,数据字段是一个http:URI,接收活动将被调用去下载和显示URI指向的数据。当匹配一个intent到一个能够处理数据的组件,通常知道数据的类型(它的MIME类型)和它的URI很重要。例如,一个组件能够显示图像数据,不应该被调用去播放一个音频文件。在许多情况下,数据类型能够从URI中推测,特别是content:URIs,它表示位于设备上的数据且被内容提供者(content provider)控制。但是类型也能够显示地设置,setData()方法指定数据的URI,setType()指定MIME类型,setDataAndType()指定数据的URI和MIME类型。通过getData()读取URI,getType()读取类型。2.4、种类此外,还包含关于应该处理intent的组件类型信息。可以在一个Intent对象中指定任意数量的种类描述。Intent类定义的一些种类常量,如下这些:  Constant    Meaning    CATEGORY_BROWSABLE    The target  activity can be safely invoked by the browser to display data referenced by a  link — for example, an image or an e-mail message.     CATEGORY_GADGET    The activity can  be embedded inside of another activity that hosts gadgets.     CATEGORY_HOME    The activity  displays the home screen, the first screen the user sees when the device is  turned on or when the HOME key is pressed.     CATEGORY_LAUNCHER    The activity can  be the initial activity of a task and is listed in the top-level application  launcher.     CATEGORY_PREFERENCE    The target  activity is a preference panel.   更多的种类常量请参考Intent类。addCategory()方法添加一个种类到Intent对象中,removeCategory()方法删除一个之前添加的种类,getCategories()方法获取Intent对象中的所有种类。2.5、附加信息额外的键值对信息应该传递到组件处理intent。就像动作关联的特定种类的数据URIs,也关联到某些特定的附加信息。例如,一个ACTION_TIMEZONE_CHANGEintent有一个"time-zone"的附加信息,标识新的时区,ACTION_HEADSET_PLUG有一个"state"附加信息,标识头部现在是否塞满或未塞满;有一个"name"附加信息,标识头部的类型。如果你自定义了一个SHOW_COLOR动作,颜色值将可以设置在附加的键值对中。Intent对象有一系列的put…()方法用于插入各种附加数据和一系列的get…()用于读取数据。这些方法与Bundle对象的方法类似,实际上,附加信息可以作为一个Bundle使用putExtras()和getExtras()安装和读取。2.6、标志有各种各样的标志,许多指示Android系统如何去启动一个活动(例如,活动应该属于那个任务)和启动之后如何对待它(例如,它是否属于最近的活动列表)。所有这些标志都定义在Intent类中。3、Intent解析Intent可以分为两组:·        显式intent:通过名字指定目标组件。因为开发者通常不知道其它应用程序的组件名字,显式intent通常用于应用程序内部消息,如一个活动启动从属的服务或启动一个姐妹活动。·        隐式intent:并不指定目标的名字(组件名字字段是空的)。隐式intent经常用于激活其它应用程序中的组件。Android传递一个显式intent到一个指定目标类的实例。Intent对象中只用组件名字内容去决定哪个组件应该获得这个intent,而不用其他内容。隐式intent需要另外一种不同的策略。由于缺省指定目标,Android系统必须查找一个最适合的组件(一些组件)去处理intent——一个活动或服务去执行请求动作,或一组广播接收者去响应广播声明。这是通过比较Intent对象的内容和intent过滤器(intentfilters)来完成的。intent过滤器关联到潜在的接收intent的组件。过滤器声明组件的能力和界定它能处理的intents,它们打开组件接收声明的intent类型的隐式intents。如果一个组件没有任何intent过滤器,它仅能接收显示的intents,而声明了intent过滤器的组件可以接收显示和隐式的intents。只有当一个Intent对象的下面三个方面都符合一个intent过滤器:action、data(包括URI和数据类型)、category,才被考虑。附加信息和标志在解析哪个组件接收intent中不起作用。3.1、Intent过滤器活动、服务、广播接收者为了告知系统能够处理哪些隐式intent,它们可以有一个或多个intent过滤器。每个过滤器描述组件的一种能力,即乐意接收的一组intent。实际上,它筛掉不想要的intents,也仅仅是不想要的隐式intents。一个显式intent总是能够传递到它的目标组件,不管它包含什么;不考虑过滤器。但是一个隐式intent,仅当它能够通过组件的过滤器之一才能够传递给它。一个组件的能够做的每一工作有独立的过滤器。例如,记事本中的NoteEditer活动有两个过滤器,一个是启动一个指定的记录,用户可以查看和编辑;另一个是启动一个新的、空的记录,用户能够填充并保存。一个intent过滤器是一个IntentFilter类的实例。因为Android系统在启动一个组件之前必须知道它的能力,但是intent过滤器通常不在java代码中设置,而是在应用程序的清单文件(AndroidManifest.xml)中以<intent-filter>元素设置。但有一个例外,广播接收者的过滤器通过调用Context.registerReceiver()动态地注册,它直接创建一个IntentFilter对象。一个过滤器有对应于Intent对象的动作、数据、种类的字段。过滤器要检测隐式intent的所有这三个字段,其中任何一个失败,Android系统都不会传递intent给组件。然而,因为一个组件可以有多个intent过滤器,一个intent通不过组件的过滤器检测,其它的过滤器可能通过检测。3.1.1、动作检测清单文件中的<intent-filter>元素以<action>子元素列出动作,例如:<intent-filter . . . >    <action android:name="com.example.project.SHOW_CURRENT" />    <action android:name="com.example.project.SHOW_RECENT" />    <action android:name="com.example.project.SHOW_PENDING" />    .. .</intent-filter>像例子所展示,虽然一个Intent对象仅是单个动作,但是一个过滤器可以列出不止一个。这个列表不能够为空,一个过滤器必须至少包含一个<action>子元素,否则它将阻塞所有的intents。要通过检测,Intent对象中指定的动作必须匹配过滤器的动作列表中的一个。如果对象或过滤器没有指定一个动作,结果将如下:·        如果过滤器没有指定动作,没有一个Intent将匹配,所有的intent将检测失败,即没有intent能够通过过滤器。·        如果Intent对象没有指定动作,将自动通过检查(只要过滤器至少有一个过滤器,否则就是上面的情况了)3.1.2、种类检测类似的,清单文件中的<intent-filter>元素以<category>子元素列出种类,例如:<intent-filter . . . >    <category android:name="android.intent.category.DEFAULT" />    <category android:name="android.intent.category.BROWSABLE" />    .. .</intent-filter>注意本文前面两个表格列举的动作和种类常量不在清单文件中使用,而是使用全字符串值。例如,例子中所示的"android.intent.category.BROWSABLE"字符串对应于本文前面提到的BROWSABLE常量。类似的,"android.intent.action.EDIT"字符串对应于ACTION_EDIT常量。对于一个intent要通过种类检测,intent对象中的每个种类必须匹配过滤器中的一个。即过滤器能够列出额外的种类,但是intent对象中的种类都必须能够在过滤器中找到,只有一个种类在过滤器列表中没有,就算种类检测失败!因此,原则上如果一个intent对象中没有种类(即种类字段为空)应该总是通过种类测试,而不管过滤器中有什么种类。但是有个例外,Android对待所有传递给Context.startActivity()的隐式intent好像它们至少包含"android.intent.category.DEFAULT"(对应CATEGORY_DEFAULT常量)。因此,活动想要接收隐式intent必须要在intent过滤器中包含"android.intent.category.DEFAULT"。注意:"android.intent.action.MAIN"和 "android.intent.category.LAUNCHER"设置,它们分别标记活动开始新的任务和带到启动列表界面。它们可以包含"android.intent.category.DEFAULT"到种类列表,也可以不包含。3.1.3、数据检测类似的,清单文件中的<intent-filter>元素以<data>子元素列出数据,例如:<intent-filter . . . >    <data android:mimeType="video/mpeg" android:scheme="http" . . . />    <data android:mimeType="audio/mpeg" android:scheme="http" . . . />    . . .</intent-filter>每个<data>元素指定一个URI和数据类型(MIME类型)。它有四个属性scheme、host、port、path对应于URI的每个部分: scheme://host:port/path 例如,下面的URI:  content://com.example.project:200/folder/subfolder/etc scheme是content,host是"com.example.project",port是200,path是"folder/subfolder/etc"。host和port一起构成URI的凭据(authority),如果host没有指定,port也被忽略。 这四个属性都是可选的,但它们之间并不都是完全独立的。要让authority有意义,scheme必须也要指定。要让path有意义,scheme和authority也都必须要指定。当比较intent对象和过滤器的URI时,仅仅比较过滤器中出现的URI属性。例如,如果一个过滤器仅指定了scheme,所有有此scheme的URIs都匹配过滤器;如果一个过滤器指定了scheme和authority,但没有指定path,所有匹配scheme和authority的URIs都通过检测,而不管它们的path;如果四个属性都指定了,要都匹配才能算是匹配。然而,过滤器中的path可以包含通配符来要求匹配path中的一部分。<data>元素的type属性指定数据的MIME类型。Intent对象和过滤器都可以用"*"通配符匹配子类型字段,例如"text/*","audio/*"表示任何子类型。数据检测既要检测URI,也要检测数据类型。规则如下:·        一个Intent对象既不包含URI,也不包含数据类型:仅当过滤器也不指定任何URIs和数据类型时,才不能通过检测;否则都能通过。·        一个Intent对象包含URI,但不包含数据类型:仅当过滤器也不指定数据类型,同时它们的URI匹配,才能通过检测。例如,mailto:和tel:都不指定实际数据。·        一个Intent对象包含数据类型,但不包含URI:仅当过滤也只包含数据类型且与Intent相同,才通过检测。·        一个Intent对象既包含URI,也包含数据类型(或数据类型能够从URI推断出):数据类型部分,只有与过滤器中之一匹配才算通过;URI部分,它的URI要出现在过滤器中,或者它有content:或file: URI,又或者过滤器没有指定URI。换句话说,如果它的过滤器仅列出了数据类型,组件假定支持content:和file: 。如果一个Intent能够通过不止一个活动或服务的过滤器,用户可能会被问那个组件被激活。如果没有目标找到,会产生一个异常。3.2、通用情况上面最后一条规则表明组件能够从文件或内容提供者获取本地数据。因此,它们的过滤器仅列出数据类型且不必明确指出content:和file: scheme的名字。这是一种典型的情况,一个<data>元素像下面这样:<data android:mimeType="image/*" />告诉Android这个组件能够从内容提供者获取image数据并显示它。因为大部分可用数据由内容提供者(content provider)分发,过滤器指定一个数据类型但没有指定URI或许最通用。另一种通用配置是过滤器指定一个scheme和一个数据类型。例如,一个<data>元素像下面这样:<data android:scheme="http" android:type="video/*" />告诉Android这个组件能够从网络获取视频数据并显示它。考虑,当用户点击一个web页面上的link,浏览器应用程序会做什么?它首先会试图去显示数据(如果link是一个HTML页面,就能显示)。如果它不能显示数据,它将把一个隐式Intent加到scheme和数据类型,去启动一个能够做此工作的活动。如果没有接收者,它将请求下载管理者去下载数据。这将在内容提供者的控制下完成,因此一个潜在的大活动池(他们的过滤器仅有数据类型)能够响应。大部分应用程序能启动新的活动,而不引用任何特别的数据。活动有指定"android.intent.action.MAIN"的动作的过滤器,能够启动应用程序。如果它们出现在应用程序启动列表中,它们也指定"android.intent.category.LAUNCHER"种类:<intent-filter . . . >    <action android:name="codeandroid.intent.action.MAIN" />    <category android:name="codeandroid.intent.category.LAUNCHER" /></intent-filter>3.3、使用intent匹配Intents对照着Intent过滤器匹配,不仅去发现一个目标组件去激活,而且去发现设备上的组件的其他信息。例如,Android系统填充应用程序启动列表,最高层屏幕显示用户能够启动的应用程序:是通过查找所有的包含指定了"android.intent.action.MAIN"的动作和"android.intent.category.LAUNCHER"种类的过滤器的活动,然后在启动列表中显示这些活动的图标和标签。类似的,它通过查找有"android.intent.category.HOME"过滤器的活动发掘主菜单。我们的应用程序也可以类似的使用这种Intent匹配方式。PackageManager有一组query…()方法返回能够接收特定intent的所有组件,一组resolve…()方法决定最适合的组件响应intent。例如,queryIntentActivities()返回一组能够给执行指定的intent参数的所有活动,类似的queryIntentServices()返回一组服务。这两个方法都不激活组件,它们仅列出所有能够响应的组件。对应广播接收者也有类似的方法——queryBroadcastReceivers()。... 全文

Android开发 android开发

Android 动画AlphaAnimation类方法

当我们打开应用时,出现在我们眼前的是一张渐变图片。此图可以是应用欢迎图片,也可以广告海报(服务可以推送广告),就是用到了动画AlphaAnimation完成的。... 全文

android android应用

Android NDK开发轻松入门

简介:AndroidNDK是能使Android应用开发者把从c/c++编译而来的本地代码嵌入到应用包中的一系列工具的组合。注意:AndroidNDK只能用于Android1.5及以上版本中。I. Android NDK 目标:Android虚拟机允许你的应用在源码中通过JNI调用本地代码中实现的方法们。概括起来,这表示:-你的应用的源中要声明一个或多个方法,这些方法前面需有'native'关键字,这表明它们被本地代码实现。如:... 全文

Android NDK Android开发

Android Monkeyrunner Test

    关于Android自动化测试,研究了Monkey,Robotium 这次来看下 Monkeyrunner.具体实践最靠谱的当然还是官网资料了。http://developer.android.com/tools/help/monkeyrunner_concepts.html ... 全文

android monkeyrunner android自动化测试

Android开发RSS阅读器

        RSS阅读器的Logo:                                       ... 全文

Android开发 android开发

Android视频教程:Android简介

本视频为《视频教程:Android核心编程》的第三部分:Android简介。查看全部教程请点击51CTO视频专题:Android核心编程... 全文

Android 视频教程

Android UI之ImageView

前言  这篇博客聊一聊在Android下ImageView的使用,在此篇博客中,会讲解到ImageView的一些属性的使用,以及ImageView展示图片的放大、缩小、旋转等操作。最后再讲解一下Android4.0项目中最常用的一个功能,从网络获取图片的示例。本文所有讲解均会附上示例代码,并在最后提供源码下载。ImageView... 全文

android android应用 ui

Android应用开发

Android应用开发-小巫CSDN博客客户端总结篇2014博客之星投票地址:http://vote.blog.csdn.net/blogstar2014/details?username=wwj_748#content小巫CSDN博客客户端的开发要告一段落了,这个作品已经成功在360、应用宝渠道上线,有兴趣的朋友可以到以下地址下载:360手机助手:http://zhushou.360.cn/detail/index/soft_id/1973215?recrefer=SE_D_%E5%B0%8F%E5%B7%ABCSDN%E5%8D%9A%E5%AE%A2#prev应用宝:http://android.myapp.com/myapp/detail.htm?apkName=com.xiaowu.blogclient本篇博客作为此系列博客的总结篇,是想把自己开发这款应用中所获得的一些经验分享给大家以表感谢那么多朋友对小巫的关注和支持。很多初学者学习Android的时候总会有这种感觉,很想做点什么东西出来,但就是无从下手,也有很多人请教我说如何去学Android,如何去开发一款应用之类的问题。一般我都只是简单的回答是,从简单做起,先把基础掌握之后,然后尝试去实现自己的想法,不要一下子就想把所有细节都想透了,把所有功能都实现了,因为这是不可能的。初学者最怕的就是急躁,想当初我学Android的时候也有过这样的经历,也是从菜鸟过来的,但现在是否成为你们口中的大牛呢,我也不敢说是。因为我自己也有很多不知道不了解的东西,关于更深层次的东西我也还有很多没有涉及到,但是我却可以实现自己的想法,开发自己的产品。从我的博客,大家可以看到小巫开发过以下应用:博客开源的有以下:简美音乐播放器(一款简单入门的音乐播放器)小巫新闻客户端(新闻类客户端开发,包含客户端、服务端开发)浪腾微博客户端(新浪微博、腾讯微博整合客户端开发,开放平台API调用)小巫CSDN博客客户端(CSDN手机客户端,分析html网页,解析html)我也发表很多关于这些客户端的开发,相信大家都可以知道开发一款应用并不是想象得那么难,难的是没有动手之前就被前面的不知所措给阻碍了,所以我建议一些初学者,无须害怕自己没有掌握相关的知识,百度是你最好的老师,遇到不懂的,或者不明白的可以自己尝试去寻找答案,网上很多大牛都很有分享精神,会把一些经验分享给大家,这时你就可以通过学习他们的博文或者请教他们来得到解决方案。我总结了开发这样一款应用需要的一些能力:最基本的Java编程(开发Android应用需要有最基本的Java编程基础和面向对象思维)基础的Android开发知识(包括UI设计,基本控件的使用,4大组件、数据存储、网络请求)搜索解决方案的能力(关键字搜索问题,熟练使用搜索引擎寻找答案)解决问题的能力(如何查看logcat、debug还有定位问题)接入SDK的能力(接入第三方服务,熟悉如何快速集成到自己应用当中)经验总结的能力(善于总结分析问题,类似写文档或者博客记录问题)关于应用,UI可能一开始不能设计得很好看,因为我们开发者大部分都不太会设计,但这没有关系,有很多应用可供我们参考,小巫的一些素材都是通过自己搜集,然后应用到自己的程序中,可以解压缩apk包,获取里面的素材,如果有能力的,也可以自己使用photoShop设计相应的素材或者寻找美工帮忙设计。开始一款应用的开发,需要自己想清楚整个程序的框架,大致已什么样的方向去设计,专业点来说就是需求分析,先把需求确定下来之后,确定基本的交互页面,把整个框架搭建起来之后,就可以开始考虑业务逻辑的实现,比如如何通过网络请求获取数据,以什么样的形式展示数据等。当整体功能需求实现之后,如果有能力的可以尝试优化程序,比如ListView的优化,性能相关的优化,UI界面的优化等等,这些都是属于你在学习过程中需要不断积累的东西。关于小巫CSDN博客客户端的总结大概就这么多,如果各位有其他想跟笔者讨论交流的,可以及时留言,我可以在博客中继续补充。这里预告笔者近期在开发的一款产品,相信不久之后也会跟大家见面,希望能跟大家一起进步,谢谢。... 全文

android csdn博客 android应用

Android高人必修 Ant 编译Android工程

一,准备antant 官网可下载http://ant.apache.org/ant 环境配置:1。解压ant的包到本地目录。2。在环境变量中设置ANT_HOME,值为你的安装目录。3。把ANT_HOME/bin加到你系统环境的path。更多的介绍可以去google相信有很多二,详细步骤和说明,这里我们要知道一些Android命令。... 全文

Android Ant

Android批量插入数据

Android中在sqlite插入数据的时候默认一条语句就是一个事务(All individual SQL Statements, (with rare exceptions like Bulk Inserts with No Log, or Truncate Table) are automaticaly "In a Transaction" whether you explicitly say so or not.. (even if they insert, update, or delete millions of rows).),因此如果存在上万条数据插入的话,那就需要执行上万次插入操作,操作速度可想而知。因此在Android中插入数据时,使用批量插入的方式可以大大提高插入速度。... 全文

Android开发 Android批量插入数据

Android

             开发App过程中,免不了要进行网络请求操作进行数据交换,比如下载图片,如果自己写一个下载图片的类进行操作的话,要考虑太多太多内容,必须线程池,内存溢出,图片磁盘缓存操作,图片内存缓存操作等等,相当麻烦。好在伟大的开源者们已经写好了一个比较完美的开源类库供大家使用Android-Universal-Image-Loader,这个类库已经被许多知名的软件所采用,当时我自己用这个开源类库的时候,百度了一大推,有查看了官方文档。现在把记录写下来供大家参考。一、介绍:   Android-Universal-Image-Loader的目的是提供一个功能强大的,灵活的,高度可定制的图像加载,缓存和显示工具。它提供了大量的配置选项,并很好地控制图像加载和缓存。... 全文

Android-Universal-Im Android图片 ImageView

Android

Exception raised during rendering: java.lang.System.arraycopy本文地址: http://blog.csdn.net/caroline_wendy... 全文

Mystra Android Exception Android SDK Location