- 博客(32)
- 收藏
- 关注
原创 Notifycation使用入门
notifycation有两种使用情况,第一种是只发消息,第二种是自定义布局显示,并且还可以对交互事件进行相应,类似于很多音乐播放器界面退出之后在通知栏显示简单播放条,可以控制。先发自定的布局文件:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_widt
2016-12-28 03:19:52 1153
原创 自定义View:重绘进度条
最近下大工夫功课自定义View这一关。我把自定义View划分为八个类别,写完这八个类别,我就基本上弄清楚自定义控件的门道了。以下是我自己划分的八个类别:1.使用现有控件布局,对子控件进行格式化和监听,纯代码实现;2.使用现有控件布局,对子控件进行格式化和监听,带布局文件和属性文件;3.继承View,自己画一个,纯代码;4.继承View,自己画一个,带属性文件;5.继承现有控件,
2016-12-28 01:38:41 1479
原创 QRCode二维码扫描和生成
使用zxing的第三方抽取包,简单的几行代码就可以完成。首先,下载第三方抽取包libzxing将其按一个model导入到我们建好的app中,添加model引用,添加权限。注意:因为权限问题,我们在主程序代码中有一大段是对权限的请求,有注释。现在看代码:首先是布局文件:<LinearLayout xmlns:android="http://schemas.android.c
2016-12-25 01:23:43 11171
原创 让ImageView尺寸适应图片比例和屏幕
是否经常会遇到这种情况:我怕们需要一个ImageView,一般情况下既想让它宽度适应屏幕,又想让它高度适应图片。但是图片比例和屏幕比例没有关联,我们给ImageView设置尺寸,要不就是充满屏幕,要不就是包裹内容,固定尺寸无法应对图片比例不确定的情况。所以我们需要写一个工具方法,来调整控件尺寸,达到既适应图片,又适应屏幕的目的。看代码:工具类public class ImageViewUtil
2016-12-24 18:56:16 11597 2
原创 Android中java和javascript方法的互相调用示例
说不清,直接贴代码:首先是网页:js和android相互调用 //调用java方法jsCallJava() function showHtmlcallJava() { var str = window.android.jsCallJava(); document.getElementById("info1").value = str; } //调用java方法
2016-12-24 05:48:05 3630
原创 CoordinatorLayout的简单应用
CoordinatorLayout,图片伸缩布局,比较流行的UI样式,已经集成在AS的想到当中。但是我们需要的是自己自由进行套用,所以不需要多余的代码来干扰我们的理解。我爸代码简化了一下,保留了最基本的应用元素。思路,首先要有一个CoordinatorLayout的布局,这个需要添加design包,接着在里层套用一个AppBarLayout,再套一层CollapsingToolbarLayou
2016-12-24 03:06:09 269
原创 简易的Android绘图程序
因为要保存图片,所以先添加权限。设计自定义的view:DevinDrawPanle,设计很多的图形和提供调用的方法,所代码比较多/** * 自定义绘图面板 * Created by Devin Chen on 2016/12/22. */public class DevinDrawPanle extends View { private Canvas mCanvas;/
2016-12-23 00:26:42 1212 4
原创 Android应用socket即时通讯的实现
一、服务器思路:首先创建服务器,用一个死循环等候若干个客户端的连接。一旦有客户端连接,就把客户端添加到集合当中,并且启动一个新的线程来保持长连接,监控客户端发来的信息。一旦接收到有客户端发来的信息,就进行包装后遍历集合,把包装好的信息发送给每一个客户端。代码如下:/** * Tcp通信服务器 * @author Devin Chen * */public class CS
2016-12-21 15:51:40 11267 4
原创 多图选择器MultiImageSelector的使用
首先下载MultiImageSelector,GitHub和CSDN上面都有。新建一个app,给自己的app添加一个model。File-->new-->Import Model,找到MultiI-mage-Selector这个文件夹导入。等它构建完成。如果于大盘picasso一直构建不完,终止进程重启。我就是这样的。或者另外构建picasso的依赖。因为网和防火墙的问题,很无奈。
2016-12-21 02:10:30 2779 1
原创 属性动画入门
直接看代码就能明白,布局文件是一个ImageView和五个按钮。下面就是监听事件。@OnClick({R.id.btn_translate, R.id.btn_scale, R.id.btn_rotate, R.id.btn_alpha, R.id.btn_set}) public void onClick(View view) { ObjectAnimator ani
2016-12-20 19:53:05 325
原创 补间动画入门
第一种,用anim资源文件创建动画动画文件:between_anim_res.xml <translate android:duration="1000" android:fromXDelta="0" android:fromYDelta="0" android:toXDelta="300" andr
2016-12-20 19:42:17 185
原创 帧动画入门
第一种,应用动画文件到背景:文件可以放到drawable文件夹,也可以放到anim文件夹<animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false"> <item android:drawable="@drawable/i
2016-12-20 19:35:47 296
原创 butterknife的依赖添加
butterknife-7.0.1和butterknife-5.1.2是以jar包的方式添加的。在eclipse+ADT中直接添加Add Build Path就可以使用。butterknife:8.4.0是以依赖库的方式添加的。在Model级的build.gradle中的dependencies部分添加一行:compile 'com.jakewharton:butterkn
2016-12-20 16:32:18 927
原创 动态加载fragment配合TabLayout
这种配合使用TabLayout来控制,获取position比较方便,fragment不需要一次性全部加载,而是在第一次使用的时候加载。也需要WindowManager和事务进行管理。因为没有用到ViewPager,所以没有滑动效果。比较适合做程序大分类主要框架。一、MyFragment/** * A simple {@link Fragment} subclass. */public
2016-12-18 16:54:29 3794 2
原创 动态加载fragment
动态加载fragment,不需要适配器,也不需要TabLayout。使用一个容器,但是需要 windowManager进行管理。管理方法不太灵活。如果要有效管理需要实时获取position。我这里为少一些代码,让思路更清晰,采取把所有需要的fragment一次性全部创建出来操作的原始方法,有点浪费资源,特别是在fragment比较多的时候。所有要选好使用条件。一、MyFragment /*
2016-12-18 16:48:25 454
原创 ViewPager+FragmentPagerAdapter的使用
这个组合是用ViewPager管理fragment,没有TabLayout,可以使用其他诸如按钮和文本控件来控制。一、FragmentsActivity /** * ViewPager+FragmentPagerAdapter */public class FragmentsActivity extends AppCompatActivity { private ViewPa
2016-12-18 16:35:10 14609
原创 ViewPager+PagerAdapter的使用
ViewPager+PagerAdapter,使用ViewPager布局,加载继承自view的控件对象,需要实现 PagerAdapter适配器。一、ViewPagerActivity /** * ViewPager+PagerAdapter */public class ViewPagerActivity extends AppCompatActivity { privat
2016-12-18 16:29:41 726
原创 RecyclerView+RecyclerView.Adapter+RecyclerView.ViewHolder的使用
一、RecycleViewActivity /** * RecycleView+recycleView.Adapter+RecycleView.ViewHolder */public class RecycleViewActivity extends AppCompatActivity { private List models; private RecyclerVi
2016-12-18 16:21:47 1110
原创 ListView+BaseAdapter的使用
一、ListViewActivity /** * ListView+BaseAdapter */public class ListViewActivity extends AppCompatActivity implements AdapterView.OnItemClickListener { private List models; private ListView
2016-12-18 16:17:25 527
原创 异步任务AsyncTask控制音乐播放示例
音乐播放获取数据,配置权限,网络请求通知和刷新列表在这里不贴。只贴音乐播放服务和异步任务,有足够的注释。一、音乐播放服务SongService/** * 播放歌曲的service */public class SongService extends Service { private MediaPlayer mediaPlayer; private int posit
2016-12-18 16:04:39 490
原创 Android简易录音机
这个相比照相机和录像机要简单多了。因为没有用到摄像头。上代码一、AndroidManifest.xml:<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.devin.simpleaudiorecorder"> <applica
2016-12-16 23:53:02 810
原创 Android简易录像机
直接上代码。一、AndroidManifest.xml<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.devin.simplevideorecorder"> <application android
2016-12-16 23:34:29 548
原创 Android自定义简易照相机
不多说,上代码,有注释。一、开权限<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.devin.camerademo"> <application android:allowBackup="true"
2016-12-16 22:46:03 866 2
原创 RecyclerView瀑布流的简单实现
首先建立布局。<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="ma
2016-12-15 21:38:03 324 1
原创 滑动返回SwipeBackLayout
一、首先添加依赖compile 'com.loopeer.android.thirdparty:swipe-back-layout:1.0'二,创建一个新的Activity,继承SwipeBackActivity。public class Main2Activity extends SwipeBackActivity { private SwipeBackLayout sw
2016-12-15 20:02:24 471
原创 灵活运用SearchView搜索框控件(二)
实现自动完成。上代码。布局文件,在ToolBar下面加一个ListView。<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_mai
2016-12-15 19:21:16 1602
原创 灵活运用SearchView搜索框控件(一)
不多说,上代码。一、首先,写好布局,就是一个ToolBar,把主题设置为NoActionBar。纯熟个人习惯,用ActionBar也可以。二、创建menu文件。其中有个item只是为了给searchView提供自定义的提交按钮的。<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app
2016-12-15 17:56:36 2553
原创 bindService报空指针错误故障排除
说起来不值一提。学过服务但是很久没有去用,没有研究里面的原理,用起来就出错误。以下是刚写的代码:service:public class MyService extends Service { public MyService() { } @Override public IBinder onBind(Intent intent) { re
2016-12-15 11:36:42 1948 1
原创 Android极光推送入门
今日接触推送,大概是因为下载了Demo,看到里面代码太多,有点惧怕麻烦,以为肯定挺复杂。幸好今天有时间,决定好好研究一下。才发现很简单。一切以文档为指导。现在就把我的入门过程记录下来。一、首先是要去极光推送网站注册帐号https://www.jiguang.cn/accounts/platform二、创建一个应用,Andoid应用只需要应用程序标题和包名。应用程序标题没讲究,以后只
2016-12-14 20:18:22 457
原创 Android圆形ImageView(二)
这个类不用依赖库,是一个纯代码的类,不需要配置文件,思路是做圆形切割,没涉及轮廓。要求原始图片必须是正方形。package com.devin.htmlplugindemo.view;import android.content.Context;import android.graphics.Bitmap;import android.graphics.Bitmap.Config;i
2016-12-12 00:12:13 358
原创 Android圆形ImageView(一)
一、在Android Studioz项目中创建model,新建Android Library二、自定义控件CircleImageViewpackage com.devin.circleimageview;import android.content.Context;import android.content.res.TypedArray;import android.graphics.B
2016-12-12 00:04:32 399
原创 Windows 7遇上MySql安装不成功
今天重装系统,干干紧紧的安装版。驱动完成之后,开始安装开发软件。安装MySql时总是在最后一步失去反应,于是卸载,清理注册表,安装,不成功,再卸载。如此反复,几近奔溃。网上提到的那些方法都不起作用。想再重装,也不是办法。于是考虑装个绿色版,也就是解压版。官网进不去,速度慢不说,还要注册。找了几个绿色版本,和网上找到的教程又不温吻合。后来终于找到一个。http://dlsw.baidu.co
2016-12-06 21:39:52 463
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人