android
文章平均质量分 56
屌丝逆袭记
一个人可以走很快,但是一群人可以走很远
展开
-
android studio的preview看不到布局,导致看不到控件的效果
android Studio新建项目,preview只显示一个大白版,看不到任何控件,不能预览。这时候我上网查了很多资料,最后发现可能是这几个原因导致的:1。 Invalidate caches/Restart...2. force refresh start3. res资源引用(我正好属于这种情况)app-> res-> values-> styl...原创 2018-11-02 15:23:31 · 2006 阅读 · 1 评论 -
Android学会属性动画的基本用法(上)
在手机上去实现一些动画效果算是件比较炫酷的事情,因此Android系统在一开始的时候就给我们提供了两种实现动画效果的方式,逐帧动画(frame-by-frame animation)和补间动画(tweened animation)。逐帧动画的工作原理很简单,其实就是将一个完整的动画拆分成一张张单独的图片,然后再将它们连贯起来进行播放,类似于动画片的工作原理。补间动画则是可以对View进行一系列转载 2016-10-09 16:30:21 · 491 阅读 · 0 评论 -
Android学会属性动画的基本用法(下),Interpolator 与ViewPropertyAnimator的用法
Interpolator的用法Interpolator这个东西很难进行翻译,直译过来的话是补间器的意思,它的主要作用是可以控制动画的变化速率,比如去实现一种非线性运动的动画效果。那么什么叫做非线性运动的动画效果呢?就是说动画改变的速率不是一成不变的,像加速运动以及减速运动都属于非线性运动。不过Interpolator并不是属性动画中新增的技术,实际上从Android 1.0版本开始原创 2016-10-09 16:37:22 · 716 阅读 · 0 评论 -
Android学会属性动画的基本用法(中)ValueAnimator与ObjectAnimator用法
ValueAnimator的高级用法在上篇文章中介绍补间动画缺点的时候有提到过,补间动画是只能对View对象进行动画操作的。而属性动画就不再受这个限制,它可以对任意对象进行动画操作。那么大家应该还记得在上篇文章当中我举的一个例子,比如说我们有一个自定义的View,在这个View当中有一个Point对象用于管理坐标,然后在onDraw()方法当中就是根据这个Point对象的坐标值来进行绘制的原创 2016-10-09 16:33:39 · 567 阅读 · 0 评论 -
安卓点击事件分发机制,带你了解安卓的点击事件
Android 中与 Touch 事件相关的方法包括:dispatchTouchEvent(MotionEvent ev)、onInterceptTouchEvent(MotionEvent ev)、onTouchEvent(MotionEvent ev);能够响应这些方法的控件包括:ViewGroup 及其子类、Activity。方法与控件的对应关系如下表所示:Tou原创 2016-08-26 23:50:52 · 898 阅读 · 0 评论 -
viewpager打造炫酷的动画效果,做出不一样的引导页
就算Google从很早开始就自带了设置引导页动画的接口,但是就我目前看来市面上使用引导页动画的还是很少的,也不知道是为什么,一想到Material Design的使用率也这么少表示很心塞。 首先来看看市面上千篇一律的引导页效果,诺: 很单调对不对,你们没看吐我都看吐了,再看一份加了引导页动画效果的: 有没有瞬间耳目一新的感觉,下面就谈谈如何做出这样的引导页动画。转载 2016-08-10 10:14:07 · 773 阅读 · 0 评论 -
安卓startActivityForResult用法详解
一、如果想在Activity中得到新打开Activity 关闭后返回的数据,需要使用系统提供的startActivityForResult(Intent intent, int requestCode)方法打开新的Activity,新的Activity 关闭后会向前面的Activity传回数据,为了得到传回的数据,必须在前面的Activity中重写onActivityResult(int requ原创 2016-08-20 13:02:29 · 1017 阅读 · 0 评论 -
安卓属性动画之插值器(TimeInterpolator)和估值器(TypeEvaluator)
概述我们都知道对于属性动画可以对某个属性做动画,而插值器(TimeInterpolator)和估值器(TypeEvaluator)在其中扮演了重要角色,下面先了解下TimeInterpolator和TypeEvaluator。TimeInterpolator(时间插值器):作用:根据时间流逝的百分比计算出当前属性值改变的百分比。系统已有的插值器: ①LinearInte原创 2016-07-23 09:35:18 · 2570 阅读 · 0 评论 -
Android 手势锁的实现 与详细的代码注释
先上图,默认效果图:当然可以自定义数量啊,颜色神马的,自定义效果图:如果你有艺术细胞,可以给我推荐几个颜色,无奈个人审美有问题~1、整体思路a、自定义了一个RelativeLayout(GestureLockViewGroup)在里面会根据传入的每行的个数,生成多个GestureLockView(就是上面一原创 2016-06-07 10:06:43 · 437 阅读 · 0 评论 -
SpannableStringBuilder使textview的文字更加酷炫与linnerlayout的分割线
//SpannableStringBuilder的使用String text = String.format("¥%1$s 门市价:¥%2$s",18.6,22); int z = text.lastIndexOf("门");SpannableStringBuilder style = new SpannableStringBuilder(text); style.原创 2016-11-08 10:29:28 · 607 阅读 · 0 评论 -
eclipse安卓项目转成android studio的项目不能添加远程依赖包的问题
最近被一个AS的sync问题困扰,在引入远程依赖包的时候,会出现一个sync错误,提示找不到这个类库。然而,并不是所有的工程都会出现这个问题,有的工程引入同样的类库却没有问题。 Error:(25, 13) Failed to resolve: com.jakewharton:butterknife:5.1.1 网上查了下(http://st原创 2016-11-29 17:12:33 · 1241 阅读 · 6 评论 -
根据path,做出酷炫动画
效果先随便上几个图,以后你找到的图有多精彩,gif就有多精彩:随便搜了一个铅笔画的图,丢进去 随手复制的二维码icon 来自大佬wing的铁塔 前文回顾这里简单回顾一下前文,GIF如下图: PathAnimView接受的唯一数据源是Path(给我一个Path,还你一个动画View) 所以内置了几种将别的资源->Path的方法:转载 2017-01-19 11:53:52 · 409 阅读 · 0 评论 -
安卓仿微信朋友圈拍照获取照片,压缩照片,显示上传,可以预览根据手势放大与缩小图片
最近项目要求做一个仿微信朋友圈拍照获取照片显示上传,要对图片进行压缩处理,防止OOM,废话不多说,下面进行拍照功能实现:实现效果如图:1.选择界面: 预览界面(可以根据手势放大缩小):已经封装成一个lib包,直接添加项目依赖就能使用:下载依赖包地址源码:https://download.csdn.net/download/zqr772791008/10300742项目大概长这样:对类的说明:...原创 2018-03-21 19:16:22 · 1561 阅读 · 0 评论 -
安卓AudioRecord实现录音和播放,可以暂停和获取声音的大小,格式为amr和wav,可以对音频进行加密
最近项目要求做一个录音功能,要可以暂停的,然后对音频进行加密解密,还要根据声音大小做一个自定义的柱形图,废话不多说,下面进行录音功能实现:项目大概长这样:设计的思路:由于自带的AudioRecord没有pauseRecord()方法,我把开始录音-->(暂停/继续录音)...-->停止录音叫做一次录音,点击一次暂停就会产生一个文件(.pcm),再点击的时候对文件进行...原创 2017-11-07 20:58:59 · 3944 阅读 · 2 评论 -
横向滑动的折线图
效果图 本控件是仿MIUI8天气24小时预报折线图,用小米手机的可以打开天气软件看一下。本文是对自定义View的练手作品,要有写自定义view的基础知识。使用方法xml: com.example.ccy.miuiweatherline.MiuiWeatherView android:id="@+id/weather" a转载 2017-08-26 20:57:39 · 3686 阅读 · 1 评论 -
安卓守护进程,使你的进程不被杀死
是这个情况,前几天在腾讯公开课看到的,确实不错,首先我先说下怎么实现的?**实现思路:**创建A,B两个服务,然后同时启动A、B服务,双进程守护,当然要另开一个进程,通过AIDL实现跨进程通信,在A、B服务中的onStartCommand方法中,互相绑定对方,然后我们想想,服务如果被强杀了怎么办,接下来是关键:我们实现ServiceConnection这个接口,在onServiceDiscon原创 2017-08-26 12:40:26 · 1490 阅读 · 0 评论 -
动脑学院高级ui效果之水波纹
水波纹动画展示效果:针对于这样的效果我们可能想起来的绘制方式有:第一种方式: 正弦曲线 计算x,y。VauleAnimation 控制x的行走画无数个直线–利用高等数学微积分path.lineTo()方法存储微小的直线最后canvas.drawLine(x1,y1,x2,y2) -第二种方式: 利用贝塞尔曲线 path.quadTo()//二阶贝原创 2017-05-08 17:46:54 · 843 阅读 · 0 评论 -
使用AS中关于Gradle的问题,下载的项目无法导入as的问题
这是我在使用AS中关于Gradle遇过的一些坑,总结出来供大家参考交流,声明这是一篇技(傻)术(瓜)文(干)章(货),大神请绕道,里面讲的一些可能你们早已掌握或有更好的解决方法 ---> 下面让我们进入正题AS导入项目 当我们从Github上或者朋友那拿到一个项目,然后在导入项目的时候就遇到下面图片上的情况,无法加载有木有,连个进度都没有,而且只能从后台杀死AS.转载 2017-03-20 09:08:13 · 1575 阅读 · 0 评论 -
Android中的Looper , Handler , Message的关系,异步消息处理的机制,根据源码分析
1、 概述Handler 、 Looper 、Message 这三者都与Android异步消息处理线程相关的概念。那么什么叫异步消息处理线程呢?异步消息处理线程启动后会进入一个无限的循环体之中,每循环一次,从其内部的消息队列中取出一个消息,然后回调相应的消息处理函数,执行完成一个消息后则继续循环。若消息队列为空,线程则会阻塞等待。说了这一堆,那么和Handler 、 Looper原创 2017-03-17 17:43:42 · 277 阅读 · 0 评论 -
安卓利用shpae画图,用XML文件做出渐变的效果
需求:要完成颜色的渐变。做法:使用 xml文件,结合 shape完成————————————————————————————————————————————设置颜色的渐变,可以通过res/drawable里定义的一个xml 完成,如:/TestColor/res/drawable/color_shape.xml写法儿如下:[html] vie原创 2017-03-02 16:28:33 · 592 阅读 · 0 评论 -
Android 混淆代码,使自己的apk更安全
为了防止自己的劳动成果被别人窃取,混淆代码能有效防止被反编译,下面来总结以下混淆代码的步骤:1. 大家也许都注意到新建一个工程会看到项目下边有这样proguard-project.txt一个文件,这个对混淆代码很重要,如果你不小心删掉了,没关系,从其他地方拷贝一个过来2. 最重要的就是在proguard-project.txt添加混淆的申明了: a. 把所有你的jar包原创 2016-05-20 09:50:21 · 575 阅读 · 0 评论 -
安卓中使用Gson解析json方法详解与使用例子
//转换器 GsonBuilder builder = new GsonBuilder(); // 不转换没有 @Expose 注解的字段 @Expose的作用是支持序列化,没有@Expose不会被序列化 builder.excludeFieldsWithoutExposeAnnotation(); //@Expo原创 2016-04-21 21:09:34 · 1254 阅读 · 0 评论 -
Android中在代码中设置控件的宽和高
//在代码中设置控件大小的方法 private Button mbtn; mbtn = (Button) findViewById(R.id.btn_test); LayoutParams lp; lp=mbtn.getLayoutParams(); lp.width=100; lp.height=200; mbtn.setLayoutParams(lp);//在代码中设置界面大原创 2016-01-06 11:07:53 · 15386 阅读 · 0 评论 -
BroadcastReceiver 的简单应用
BroadcastReceiver 是安卓的四大组键之一,四大组键本来这是要在清单文件中注册的,但是这个可以直接在代码中注册,注册代码如下: 这段代码一般是在界面onCreat的时候注册 //注册广播 IntentFilter filter = new IntentFilter(); filter.addAction("bd.zzd.dev.update");//这是要广播的标识原创 2016-01-09 20:20:33 · 372 阅读 · 0 评论 -
安卓在定义的view中实现手势识别上,下,左,右的功能
在安卓中自己做一个识别上下左右的功能 1.首先在全局变量中定义一个实例 //定义手势检测器实例private GestureDetector mDetector;2.然后再该view的构造函数中创建出对象 mDetector = new GestureDetector( this.onGestureListener);3.接着在实现onGestureListener的方法 Gesture原创 2016-01-20 10:31:25 · 752 阅读 · 0 评论 -
安卓中intent切换界面与传递数值
在安卓中,经常用Intent来传递数值和对象,现在来介绍下intent的用法: 首先是 Activity1: Intent intent = new Intent(); // Activity1 intent.putExtra("one", num1); intent.putExtra("two", num2); intent.setCla原创 2016-01-22 20:46:08 · 810 阅读 · 0 评论 -
安卓中dialog从地上弹出来效果。
安卓中dialog的两种用法,一种是嵌套布局的的dialog,一种是直接在代码中间写布局的用法。 首先是加载布局文件xml的用法: private void showDialog() { final AlertDialog dialog = new AlertDialog.Builder(Activity.this) .create(); dialog.sh原创 2016-01-23 10:29:07 · 566 阅读 · 0 评论 -
安卓中在代码中设置dialog的样式
直接在代码中设置dialog的样式,代码如下:public void onClick(View v) { final EditText inputServer = new EditText(ActivityAccoutManage.this); inputServer.setSelectAllOnFocus(true); Ale原创 2016-01-23 10:42:58 · 931 阅读 · 0 评论 -
安卓中hander定时器和timer的简单用法
Java代码 package com.ray.test; import java.util.Timer; import java.util.TimerTask; import android.app.Activity; import android.os.Bundle; public class JavaTimer extends Activity { Timer ti原创 2016-03-01 11:00:16 · 748 阅读 · 0 评论 -
安卓中利用Handler实现定时器的效果
首先需要到导入的包有: import android.os.Bundle; import android.os.Handler;然后在new出一个新的对象:Handler handler = new Handler() { public void handleMessage(android.os.Message msg) { System.out.p原创 2016-03-08 15:17:12 · 1198 阅读 · 0 评论 -
安卓 SharedPreferences 的简单使用
今天介绍一下SharedPreferences 的简单应用,这个主要用在登录时的记住密码和记住一些check box的状态。这个存储是以键值对的方式存储,一个key 一个值。1.首先可以定义下全局变量 private SharedPreferences mSharedPreferences;接着在onCreate 的时候: mSharedPreferences = getShared原创 2016-01-05 08:53:27 · 3419 阅读 · 2 评论 -
安卓第一次安装与软件更新时显示引导页,其他时候显示别的图片,以及定时进入主页面
今天跟大家分享如何让软件在第一次安装时和更新后显示引导页,这个我们根据版本号来识别。还有定时进入主页面。 1.得到版本号的代码: private String getVersionName(){ //用来管理手机的APK PackageManager pm = getPackageManager(); try { /原创 2015-12-17 14:44:01 · 981 阅读 · 0 评论 -
viewpager中添加view和禁止划动切换页面及点击切换页面
今天做了个注册和登录的页面,其中就一个Activity 用viewpager。。然后通过点击来实现注册与登录也面的切换。 首先要让viewpager禁止划动就要重写viewpager的onTouchEvent和onInterceptTouchEvent方法。 代码如下: public class MyViewpager extends ViewPager { private bool原创 2015-12-10 16:59:22 · 806 阅读 · 0 评论 -
ViewPager和Fragment结合使用,可以做出顶部导航界面滑动效果
在项目中,我们常常需要实现界面滑动切换的效果。例如,微信界面的左右滑动切换效果。那这种效果是怎么实现的?今天我就带大家简单了解ViewPager,并通过实例来实现该效果。一. ViewPager 官方API首先我们来看一下ViewPager官方给出的解释,如图:具体意思如下:Layout 管理器允许用户可以在页面上,左右滑动来翻动页面。你可以考虑实现Pa原创 2016-05-07 15:49:48 · 1937 阅读 · 0 评论 -
安卓中webview的使用方法介绍
本文主要讲解WebView的一些常用使用方法代码如下:xml文件:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_p原创 2016-05-11 10:27:18 · 3138 阅读 · 0 评论 -
安卓中序列化Serializable和Parcelable区别和使用,intent间传递
Intent在不同的组件中传递对象数据的应用非常普遍。下面介绍两种通过Intent传递对象的方法。1、实现Serializable接口2、实现Parcelable接口 为什么要将对象序列化? 1、永久性保存对象,保存对象的字节序列到本地文件中; 2、用过序列化对象在网络中传递对象; 3、通过序列化对象在进程间传递对象。 1、实原创 2016-04-11 10:13:11 · 685 阅读 · 0 评论 -
安卓 json解析如何使用与讲解
JSON的定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的支持),从而可以在不同平台间进行数据交换。JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为– Json.orgJSON Vs XML1.JSON和XML的数据可读性基本相同原创 2016-04-09 17:27:50 · 2996 阅读 · 2 评论 -
HashMap的简单使用教程
package list; import java.util.Collection; import java.util.HashMap; import java.util.Map; import java.util.Set; public class MapTest { public static void main(String[] args) {转载 2016-02-29 09:48:35 · 484 阅读 · 0 评论 -
刚用andriod studio 的一点心得感受
今天实习的第一天,到了公司经理就叫我自己去下载安装软件,之前在学校自学的时候用的是eclipose,然后经理说现在都在用android studio ,因为没有用过,所以安装的时候遇到了很多问题。这里我把遇到的问题和大家一起分享下。 1.首先,android studio使用的jdk版本最低是1.7. 2.android studio有两种安装模式。一种是.exe文件里面就是包含sdk文件。另一原创 2015-11-28 16:34:36 · 1681 阅读 · 0 评论 -
引导页的实现,用ViewPager,底下有小圆点显示以及滑动进入主页面
实习的第一个经理布置的任务就是实现引导页功能,在这和大家分享下 1.布局采用相对布局中有ViewPager和LinearLayout 代码如下:<android.support.v4.view.ViewPager android:layout_width="match_parent" android:layout_height="match_parent" android:原创 2015-11-30 08:36:35 · 2581 阅读 · 1 评论