Android应用开发完全攻略
关于Android,这里有你想要的一切
搬砖的乔布梭
这个作者很懒,什么都没留下…
展开
-
UpnpDemo_调用服务
/**该类将调用【同局域网下的灯泡设备】所搭载的【UPNP服务SwitchPower】中的方法接口,实现对灯泡开关的控制**/public class SwitchActivity extends Activity {private Button btnSwitch;//开关按钮private boolean isOn;//灯泡状态private boolean原创 2015-12-10 01:03:01 · 457 阅读 · 0 评论 -
UpnpDemo_搜索设备和服务
/**继承和重写UPNP服务协议AndroidUpnpServiceImpl**/----------------------------------------------------------------------------------------------------------public class BrowserUpnpServiceImpl extends A原创 2015-12-10 01:02:09 · 617 阅读 · 0 评论 -
UpnpDemo_发布设备和服务
//主控类,将注册设备和服务,并实现业务逻辑public class LightActivity extends Activity implements PropertyChangeListener{private AndroidUpnpService upnpService;private UDN udn = new UDN(UUID.randomUUID()原创 2015-12-10 01:01:35 · 401 阅读 · 0 评论 -
UpnpDemo_定义服务
//定义一个UPNP服务,供远程控制端调用//声明该类为一个UPNP服务@UpnpService{serviceId = @UpnpServiceId("SwitchPower"),serviceType = @UpnpServiceType(value="SwitchPower",version=1)}public class SwitchPowe原创 2015-12-10 01:00:14 · 398 阅读 · 0 评论 -
安卓高级面试题
x1 说说RecyclerView和ListView的异同点,RecyclerView优越在什么地方?·ListView、GridView也是对ITEM的复用,但因为布局方式不同,从而形成了不同的控件;·而RecyclerView的出现,实现了对相同的复用数据以多种不同布局方式来呈现(布局管理器);·即RecyclerView只专注于数据复用本身,而将以何种布局展示,完全交由布局管理器原创 2017-02-08 06:51:46 · 602 阅读 · 0 评论 -
安卓基础面试题
10:简述Android操作系统的四层架构·Linux内核层:C/C++/汇编等·系统运行库和运行时(含Dalvik虚拟机):C/C++·应用框架层(Framework层):Java为主·应用层:Java11:简要介绍SDK的目录结构·platform:不同平台版本·build-tools:编译工具·tools:通用工具·platform原创 2017-02-08 06:48:35 · 879 阅读 · 0 评论 -
JAVA基础面试题
01 面向对象的基本特征有哪些?分别解释;·面向对象的四大特征为:封装、继承、多态、抽象;·封装是将业务相近的、可重用的属性和方法封装为类,进而通过类的对象实例去调用;·继承的目的是对现有类进行扩展和修改,扩展就是增加新的属性与方法,修改是指通过覆写父类方法实现自身的差异化实现;·多态是指同一父类或接口可以有多个不同的子类或实现类,外界在调用时可以不必关心子类的具体实现,而只需要统原创 2017-02-08 06:47:00 · 257 阅读 · 0 评论 -
自定义通讯录字母索引
1、先来看下布局的效果布局的代码如下,其中LetterIndexView为我们将要自定义的控件,使用相对布局置于界面的右侧;RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" an原创 2017-04-27 15:38:49 · 998 阅读 · 0 评论 -
自定义流式布局
流式布局可以有横向和纵向之分,本例为横向,纵向请自行举一反三;效果图如下:大致的思路,覆写其onLayout()方法,定义孩子的排列规则,要点有:·每行的行高取决于该行最高的孩子高度;·从左向右依次排列孩子,每插入一个新的孩子,就重新计算行宽,当行宽超出父控件的固有宽度时,就折行,总行高+=当前行高度;·折行,新的行宽清零,行高清零;·在新行中继续排列孩子,每插原创 2017-04-26 17:13:36 · 334 阅读 · 0 评论 -
可自由配置的图文混排控件——组合法
1、我们希望控件可以这样定制:com.itemp.imagetext.ImageText android:layout_width="wrap_content" android:layout_height="wrap_content" talent:image_src="@mipmap/weather" talent:image_width="50dp"原创 2017-04-25 15:31:45 · 647 阅读 · 0 评论 -
随机切换验证字符串——继承法
1、继承于TextViewpublic classRandomChangeTextViewextendsTextView2、覆写构造方法,令一参的两参的都去间接调用三参的构造方法/** * 代码创建控件实例 * @param context */public RandomChangeTextView(Context context) { this原创 2017-04-25 15:18:20 · 198 阅读 · 0 评论 -
自动走时的钟表控件——作图法
√ 本例实现一个定时刷新的钟表控件 → 在布局文件中使用自定义的控件,并传入属性: android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="10dp"原创 2015-12-10 01:24:57 · 463 阅读 · 0 评论 -
自定义控件-组合法
→ 在布局中使用自定义的组合控件(本例不带自有命名空间): <com.kitty.widget.LabelEditText android:layout_width="fill_parent" android:layout_height="wrap_content" labelFontSize="16" ...原创 2019-03-14 22:28:22 · 369 阅读 · 0 评论 -
自定义控件-继承法
在布局文件中使用自定义的控件→ 声明自定义的命名空间: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:mobile="http://com.kitty.widget" android:layout_width="fill_parent"...原创 2019-03-14 22:28:26 · 739 阅读 · 1 评论 -
自定义Toast
//带图片的Toasttoast = Toast.makeText(context ,"带图片的Toast", Toast.LENGTH_LONG);LinearLayout toastView = (LinearLayout) toast.getView();ImageView image = new ImageView(context);image.setImage原创 2015-12-10 00:50:41 · 220 阅读 · 0 评论 -
屏幕适配
@屏幕密度(dpi=dots per inch):·低密度(ldpi),代表性配置:120ppi(像素/英寸),240 * 320分辨率;·中密度(mdpi),代表性配置:160ppi(像素/英寸),320 * 480分辨率;·高密度(hdpi),代表性配置:240ppi(像素/英寸),480 * 800分辨率;·超高密度(xhdpi),代表性配置:320ppi(像素/英寸),72原创 2017-04-25 14:34:26 · 412 阅读 · 0 评论 -
认识Messenger
【Messenger】==================================================@概述:·实现跨进程的Handler消息传递和处理;·其实现原理与AIDL相同,即绑定远程Service,跨进程获得Binder对象,进而实现通信;·相比AIDL的优势为,Messenger可以通过Message和Bundle实现【对象型参数】的跨进程传递;原创 2017-04-20 21:09:16 · 332 阅读 · 0 评论 -
认识AIDL
【AIDL】==================================================@基本概念:·RPC,远程程序调用(Remote Procedure Call)·IPC,跨进程通信(Inter Process Communication)·AIDL,安卓接口定义语言(Android Interface Definition Language),是原创 2017-04-20 21:07:12 · 368 阅读 · 0 评论 -
自定义activity切换动画
→ 为application全局(或activity局部)定义统一的主题: android:theme="@style/ActivityTheme"→ 在styles.xml中定义该主题: @style/ActivitySwitchAnimation true → 继续在styles.xml中定义动画切换原创 2015-12-10 01:25:47 · 269 阅读 · 0 评论 -
为横竖屏切换配置不同的layout
→ 定义两套不同的布局文件main_portrait,main_horizontal;→ 在activity声明中添加configChange属性: android:configChanges="orientation" ; → 增加configChange用户权限 : → 在activity代码中实现configChange回调:原创 2015-12-10 01:21:13 · 503 阅读 · 0 评论 -
界面换肤的两种实现方法
方法1:使用不同的主题→ 为activity编写不同的theme;→ 在事件监听中设置新的theme: mTheme=newTheme;→ 启动新的activity实例,finish当前实例: saveCurrentArguments(); Intent intent=new Intent(TheActivity.this,TheAct原创 2015-12-10 01:20:34 · 554 阅读 · 0 评论 -
定制气泡风格的Activity
→ 定义主题 @drawable/bubble → 在Activity声明时使用该主题 android:theme="@style/BubbleTheme "/> → 在BubbleActivity的onCreate()方法中设置背景模糊 getWindow().setFlags(WindowManager.Lay原创 2015-12-10 01:19:59 · 449 阅读 · 0 评论 -
多线程用法集合
/* * 每条线程都有一个默认的looper在维护一个默认的消息队列; * 线程间的通信通过搭载了各自looper的handler来进行; * 搭载子线程looper的handler无法操作UI; *--------------------------------------------------------------- * 常用的三种多线程手段:直接新起、构建原创 2015-12-10 01:06:42 · 482 阅读 · 0 评论 -
AsyncTask使用范例
/* * 异步任务相比普通多线程占用更多系统资源(主要因为有内置的ThreadPoolExecutor); * 异步任务可以随时终止,相比普通多线程更加可控; * 异步任务必须在主线程发起,带有主线程的handler,因而可以在任务各环节中直接操作UI,相比普通多线程更加易用; * 相比普通多线程有更好的重用性; */public class MainActivi原创 2015-12-10 01:05:24 · 293 阅读 · 0 评论 -
Application类的使用范例
//此处令其保管全局变量并打印日志//Logger、Level类位于log4j-1.2.16.jar中//LogConfigurator类位于android-logging-log4j-1.0.3.jar中public class MyApp extends Application { private static Context context;原创 2015-12-10 00:57:55 · 518 阅读 · 0 评论 -
深入理解Manifest
xmlns:android="http://schemas.android.com/apk/res/android" package="com.kitty.myproject" android:versionCode="1"android:versionName="1.0.1">原创 2015-12-10 00:57:16 · 512 阅读 · 0 评论 -
SQLite+ContentProvider的组合使用
今建立一张菜单表并分享其数据//计划数据 public class Menus implements BaseColumns{ //定义表字段 public static final String ID="_id"; public static final String NAME="name"; public static fi原创 2015-12-10 00:55:37 · 329 阅读 · 0 评论 -
HttpUrlConnection
使用HttpUrlConnection向服务器上传文件 String uploadUrl="http://192.168.1.100/upload/UploadServlet";String boundary=""******";String end="\r\n"; try{//构造URL并获取HttpUrlConnection对象URL url=new U...原创 2015-12-10 00:54:18 · 325 阅读 · 0 评论 -
使用补间动画
//移动补间动画: //旋转补间动画:<rotate xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@anim/linear_interpolator" android:pivotX="50%" android:pivotY="50%" android:fromDegrees="原创 2015-12-10 00:49:13 · 254 阅读 · 0 评论 -
播放逐帧动画的子序列
//利用反射技术,获取AnimationDrawable对象的内部私有变量mCurFrame//此处播放原始序列的2~5帧private void onDraw(Canvas canvas) { //反射获取私有int变量mCurFrame:拿属性-砸开-拿值-设置值 Field field=AnimationDrawable.class.getDeclar原创 2015-12-10 00:47:34 · 333 阅读 · 0 评论 -
使用逐帧动画
//定义逐帧动画: http://schemas.android.com/apk/res/android" android:oneShot="false"> //在代码中引用:AnimationDrawable animationDrawable=(AnimationDrawable)getReso原创 2015-12-10 00:46:38 · 416 阅读 · 0 评论 -
PopupWindow
弹窗控件,可定义其尺寸、弹出位置、内容等;Activiy代码:public class PopupWindowTest{ private void ivBtn; private LinearLayout llContent; private int n; private PopupWindow window; publi原创 2015-12-10 00:38:38 · 250 阅读 · 0 评论 -
强大的SHAPE资源
shape资源可以定义形状、渐变、边距、边框、圆角(你越来越像一头猪了——“形渐变变圆” )今使用shape资源实现一个圆角矩形风格的TextView 定义shape资源:http://schemas.android.com/apk/res/android" android:shape="rectangle"> android:bo原创 2015-12-10 00:34:12 · 360 阅读 · 0 评论 -
使用CLIP资源制作一个进度条
准备资源res/drawable/clip.xml:在progress.png上横向左切 http://schemas.android.com/apk/res/android"android:drawable="@drawable/progress"android:clipOrientation="horizontal"android:gravity="left"/>原创 2015-12-10 00:33:35 · 338 阅读 · 0 评论