
android
森林屿麓
这个作者很懒,什么都没留下…
展开
-
dpi 、 dip 、分辨率、屏幕尺寸、px、density 关系以及换算
一、基本概念dip : Density independent pixels ,设备无关像素。dp :就是dippx : 像素dpi :dots per inch , 直接来说就是一英寸多少个像素点。常见取值 120,160,240。我一般称作像素密度,简称密度density : 直接翻译的话貌似转载 2016-08-04 11:33:22 · 4484 阅读 · 0 评论 -
自定义 dialog
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center_horizontal|c原创 2016-09-18 09:20:24 · 211 阅读 · 0 评论 -
Android Studio中使用Lambda表达式
首先先项目根目录下的build.gradle中加入classpath 'me.tatarka:gradle-retrolambda:3.1.0'然后再module目录下的build.gradle中使用插件,加入apply plugin: 'me.tatarka.retrolambda'并且在android节点下加入 compileOptions { s原创 2016-08-25 11:55:42 · 274 阅读 · 0 评论 -
android SwipeRefreshLayout 实现 下拉刷新 上拉加载
上图没有什么注释 没有demo 但是 思路清晰 好好理解看一下xml<android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/原创 2016-09-02 21:12:24 · 534 阅读 · 0 评论 -
CoordinatorLayout与滚动的处理
CoordinatorLayout 实现了多种Material Design中提到的滚动效果。目前这个框架提供了几种不用写动画代码就能工作的方法,这些效果包括:让浮动操作按钮上下滑动,为Snackbar留出空间。扩展或者缩小Toolbar或者头部,让主内容区域有更多的空间。控制哪个view应该扩展还是收缩,转载 2016-08-12 10:05:25 · 257 阅读 · 0 评论 -
android Gson解析 (同json解析方式)
通json方式利用Gson解析数据实体类public class Grade { String course; int score; public String getCourse() { return course; } public void setCourse(String course) { this.cou原创 2016-09-01 20:19:02 · 333 阅读 · 0 评论 -
Android Studio Plugin is too old
今天打开as突然就报错 Plugin is too old。。。。。。看到之后顿时感到蛋痛,以为笔记本换系统,想着这个(台式)电脑as挺好的,懒着去下载,所以就直接把sdk as 都拷到笔记笨了 结果新建项目之后就出现了如上的错误,折腾了一下无果,第二天晚上又折腾了一下无果。第三天折腾无果之后下载重新装。成功但是今天台式这台电脑莫名的也出现了同样的错误真的心碎一地!好吧 不能总是写在吧。原创 2016-08-22 16:46:59 · 244 阅读 · 0 评论 -
Android 中 Retrofit 结合 RxJava使用
Retrofit 简单使用Retrofit 目前最新版本是 2.0.0-beta4 ,相比于 1.x 版本,一些 api 有较大变动,因此建议直接通过官方文档和示例进行学习,下面是一个比较基础的 Retrofit 使用示例添加依赖 compile 'com.squareup.retrofit2:retrofit:2.0.0-beta4' compile 'com.转载 2016-08-30 12:13:50 · 2566 阅读 · 0 评论 -
Checkable API详解
public interface Checkable凡是继承了此接口的类 例如: CheckBox, CheckedTextView, CompoundButton, RadioButton, ToggleButton 都是实现了这个接口 ,所以他们都有一个 checked 方法再比如自定义的view继承了 Checkable 后也会有一个 checked的方法原创 2016-07-20 20:03:16 · 3212 阅读 · 0 评论 -
HttpClient
HttpClient client = new DefaultHttpClient(); HttpPost post = new HttpPost(uri); Listlist = new ArrayList(); NameValuePair pair = new BasicNameValuePair("name", "hh"); list.add(pair); try {转载 2016-07-18 20:25:38 · 227 阅读 · 0 评论 -
HttpURLConnection
/** * 获取指定URL的响应字符串 * @param urlString * @return */ private String getURLResponse(String urlString){ HttpURLConnection conn = null; //连接对象 InputStream is = null; String resultData = "";转载 2016-07-18 20:24:02 · 237 阅读 · 0 评论 -
Android ListView 图片异步加载和图片内存缓存
开发Android应用经常需要处理图片的加载问题。因为图片一般都是存放在服务器端,需要联网去加载,而这又是一个比较耗时的过程,所以Android中都是通过开启一个异步线程去加载。为了增加用户体验,给用户省流量,一般把加载完的图片先缓存下来,下次加载的时候就不需要再联网去服务器端加载。图片缓存一般分为一级缓存(即内存缓存)和二级缓存(即磁盘缓存)。这里只讲一级缓存。内存缓存就是把加载完的图片转载 2016-07-17 11:23:35 · 3285 阅读 · 0 评论 -
TabLayout结合ViewPager的使用
点击title 和滑动viewpager 都可实现滑动布局文件如下<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res原创 2016-08-15 09:02:17 · 1424 阅读 · 0 评论 -
Volley 请求数据中文乱码
覆写{ @Override protected Response parseNetworkResponse(NetworkResponse response) { String str = null; try { str = new Strin原创 2016-09-19 20:15:06 · 299 阅读 · 0 评论 -
自适应网络加载的图片(按比例缩小)
网络下载的图片如果加载到屏幕上 由于其 尺寸不定 所以要对其进行统一管理,一般是解析json先得到图片路径(附带图片的width,height)对图片统一管理方案float widthfloat heightwidth = 屏幕wheight = 图片h/(图片w/屏幕w)imageView.setLayoutParams(new LinearLayout.L原创 2016-09-07 16:37:54 · 864 阅读 · 0 评论 -
android studio toolbar 简单使用变换样式背景
原生的toolbar <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background原创 2016-08-13 14:49:46 · 4395 阅读 · 0 评论 -
android异步查询 sqlitehelper contentprovider loader
主要代码package com.example.android_loader_manager;import java.util.ArrayList;import java.util.List;import android.app.Activity;import android.app.LoaderManager;import android.app.LoaderManager.L原创 2016-08-11 09:27:35 · 806 阅读 · 0 评论 -
关于list的item侧滑删除置顶
package com.whr.jsu.myapplication;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.AdapterView;import android.widget.ListView;import android.w转载 2016-08-04 09:49:20 · 479 阅读 · 0 评论 -
slidingmenu学习总结
已开是应用slidingmenu 的时候是想要结合viewpager使用的,但是总是出现viewpager滑动的时候和slidingmenu侧滑冲突,想了好久也没解决。网上查没找到今天在系统的学习slidingmenu的时候不经意的 就看到解决办法很简单, viewpager.setOnPageChangeListener(new OnPageChangeListener() {原创 2016-04-28 23:14:17 · 282 阅读 · 0 评论 -
Android Tween动画之RotateAnimation实现图片不停旋转
本文主要介绍Android中如何使用rotate实现图片不停旋转的效果。Android 平台提供了两类动画,一类是 Tween 动画,即通过对场景里的对象不断做图像变换(平移、缩放、旋转)产生动画效果;第二类是 Frame 动画,即顺序播放事先做好的图像,跟电影类似。本文分析 Tween动画的rotate实现旋转效果。 在新浪微博客户端中各个操作进行中时activity的右上角都会转载 2016-04-17 16:05:38 · 959 阅读 · 0 评论 -
android socket 编程 值得注意的地方
从开发web 到学习Android 本以为在sorcket 编程上没有什么区别,但还是出乎意料第一点:在android中127.0.0.1 代表的是android虚拟机的 ip 而如果你想要 从虚拟机连接到 电脑上 ip 不能写 localhost 或者 127.0.0.1而应该写 127.0.2.2 第二点:在android2.3 版本之后就不能再主线程中 访问网络,一定要原创 2016-02-16 19:47:00 · 747 阅读 · 0 评论 -
Android Fragment完全解析,关于碎片你所需知道的一切
转载请注明出处:http://blog.youkuaiyun.com/guolin_blog/article/details/8881711我们都知道,Android上的界面展示都是通过Activity实现的,Activity实在是太常用了,我相信大家都已经非常熟悉了,这里就不再赘述。但是Activity也有它的局限性,同样的界面在手机上显示可能很好看,在平板上就未必了,因为平板的屏幕非常转载 2016-02-13 10:55:51 · 290 阅读 · 0 评论 -
Android中自定义样式与View的构造函数中的第三个参数defStyle的意义
Android中自定义样式与View的构造函数中的第三个参数defStyle的意义零、序一、自定义Style二、在XML中为属性声明属性值 1. 在layout中定义属性 2. 设置Style 3. 通过Theme指定三、在运行时获取属性值 1. View的第三个构造函数的第三个参数defStyle转载 2016-07-23 16:10:43 · 229 阅读 · 0 评论 -
activity生命周期
前言:activity生命周期 一个老生常谈的话题,但是没有亲自动手测试过,每次遇到都不是特别的清晰,处于模糊的装填。故两个activity main second class 布局 在main中添加了两个按钮 一个弹出对话框 和一个跳转的按钮 布局简单 不黏贴了public class MainActivity extends Activity { String TAG原创 2016-07-27 21:44:25 · 300 阅读 · 0 评论 -
glide记载圆形图片
亲测有效Glide.with(this).load(URL).transform(new CircleTransform(context)).into(imageView);public static class CircleTransform extends BitmapTransformation { public CircleTransform(Context context转载 2016-10-05 14:16:32 · 600 阅读 · 0 评论 -
android 命名规范
标识符命名法标识符命名法最要有四种:1 驼峰(Camel)命名法:又称小驼峰命名法,除首单词外,其余所有单词的第一个字母大写。2 帕斯卡(pascal)命名法:又称大驼峰命名法,所有单词的第一个字母大写3 下划线命名法:单词与单词间用下划线做间隔。4 匈牙利命名法:广泛应用于微软编程环境中,在以Pascal命名法的变量前附加小写序列说明该变量的类型。 量的取名方转载 2016-09-21 19:49:04 · 256 阅读 · 0 评论 -
Fragment生命周期
官网帮助文档链接: http://developer.android.com/guide/components/fragments.html主要看两张图,和跑代码一,Fragment的生命周 二,与Activity生命周期的对比 场景演示 : 切换到该Fragment11-29 14:26:35.095: D/转载 2016-04-14 12:23:28 · 233 阅读 · 0 评论 -
XML PULL解析
Pull和Sax类似,都是基于流(stream)操作文件,然后根据节点事件回调开发者编写的处理程序。因为是基于流的处理,因此Pull和Sax都比较节约内存资源,不会象Dom那样要把所有节点以对橡树的形式展现在内存中。 但Pull比Sax更简明,而且不需要扫描完整个流。 他们的区别为:SAX解析器的工作方式是自动将事件推入注册的事件处理器进行处理,因此你不能控制事转载 2016-03-20 12:24:09 · 304 阅读 · 0 评论 -
十五、从互联网获取图片且保存到指定目录
package com.ljq.test;import java.io.File;import java.io.FileOutputStream;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.URL;import org.junit.Test;/** * 从互联网获取图转载 2015-10-01 18:16:31 · 398 阅读 · 0 评论 -
十四、ContentProvider往通讯录添加联系人和获取联系人
在Android中,可以使用ContentResolver对通信录中的数据进行添加、删除、修改和查询操作。在对联系人进行操作时需加入以下两个权限 content://com.android.contacts/contacts 操作的数据是联系人信息Uricontent://com.android.contacts/data/phones 联系人电话Uriconte转载 2015-10-01 18:14:35 · 353 阅读 · 0 评论 -
十、SQLite数据库增删改查操作
十、SQLite数据库增删改查操作一、使用嵌入式关系型SQLite数据库存储数据在Android平台上,集成了一个嵌入式关系型数据库——SQLite,SQLite3支持NULL、INTEGER、REAL(浮点数字)、TEXT(字符串文本)和BLOB(二进制对象)数据类型,虽然它支持的类型只有五种,但实际上sqlite3也接受varchar(n)、char(n)、decimal(p,s)转载 2015-09-24 23:42:03 · 328 阅读 · 0 评论 -
六、把文件存放在SDCard
六、把文件存放在SDCard使用Activity的openFileOutput()方法保存文件,文件是存放在手机空间上,一般手机的存储空间不是很大,存放些小文件还行,如果要存放像视频这样的大文件,是不可行的。对于像视频这样的大文件,我们可以把它存放在SDCard。 SDCard是干什么的?你可以把它看作是移动硬盘或U盘。 在模拟器中使用SDCard,转载 2015-09-24 23:38:09 · 381 阅读 · 0 评论 -
SQLite数据库增删
SQLite数据库增删改查操作案例Person实体类package com.ljq.domain;public class Person { private Integer id; private String name; private String phone; public Person() { super();转载 2015-09-24 23:32:23 · 359 阅读 · 0 评论 -
ContentProvider和Uri详解
ContentProvider和Uri详解一、使用ContentProvider(内容提供者)共享数据ContentProvider在android中的作用是对外共享数据,也就是说你可以通过ContentProvider把应用中的数据共享给其他应用访问,其他应用可以通过ContentProvider对你应用中的数据进行添删改查。关于数据共享,以前我们学习过文件操作模式,知道通过指定文件转载 2015-09-24 23:28:42 · 314 阅读 · 0 评论 -
十三、ContentProvider案例
十三、ContentProvider案例PersonContentProvider内容提供者类package com.ljq.db;import android.content.ContentProvider;import android.content.ContentUris;import android.content.ContentValues;import a转载 2015-09-24 23:43:25 · 223 阅读 · 0 评论 -
八、使用pull解析器操作xml文件
八、使用pull解析器操作xml文件一、使用Pull解析器读取XML文件除了可以使用SAX或DOM解析XML文件之外,大家也可以使用Android内置的Pull解析器解析XML文件。 Pull解析器是一个开源的java项目,既可以用于android,也可以用于JavaEE。如果用在javaEE需要把其jar文件放入类路径中,因为Android已经集成进了Pull解析器,所以无需添加任何转载 2015-09-24 23:39:54 · 261 阅读 · 0 评论 -
四、对应用进行单元测试
四、对应用进行单元测试在实际开发中,开发android软件的过程需要不断地进行测试。使用Junit测试框架,是正规Android开发的必用技术,在Junit中可以得到组件,可以模拟发送事件和检测程序处理的正确性。 第一步:首先在AndroidManifest.xml中加入下面红色代码:http://schemas.android.com/apk/res/andro转载 2015-09-24 23:36:18 · 313 阅读 · 0 评论 -
九、使用SharedPreferences进行数据存储
九、使用SharedPreferences进行数据存储很多时候我们开发的软件需要向用户提供软件参数设置功能,例如我们常用的QQ,用户可以设置是否允许陌生人添加自己为好友。对于软件配置参数的保存,如果是window软件通常我们会采用ini文件进行保存,如果是j2se应用,我们会采用properties属性文件或者xml进行保存。如果是Android应用,我们最适合采用什么方式保存软件配置参数转载 2015-09-24 23:40:49 · 338 阅读 · 0 评论 -
五、使用文件进行数据存储
五、使用文件进行数据存储很多时候我们开发的软件需要对处理后的数据进行存储,以供再次访问。Android为数据存储提供了如下几种方式:文件SharedPreferences(参数)SQLite数据库内容提供者(Content provider)网络 首先给大家介绍使用文件如何对数据进行存储Activity提供了openFileOutput()方法转载 2015-09-24 23:37:28 · 428 阅读 · 0 评论 -
二十、Activity之间通信
在一个Activity中可以使用系统提供的startActivity(Intent intent)方法打开新的Activity,在打开新的Activity前,你可以决定是否为新的Activity传递参数。 第一种:打开新的Activity,不传递参数public class MainActivity extends Activity {转载 2015-10-01 18:27:26 · 243 阅读 · 0 评论