Android
谢栋_
选择比能力更重要
展开
-
使用Volley三级缓存机制优化ListView加载图片
在ListView中列表显示图片时,当图片分页加载到最低端时,如果再向上滑动,会有图片闪烁的情况,引起的原因一般是因为没引入缓存,当上下滑动的时候,每个Item需要重新加载图片导致图片的闪烁,使用Volley的三级缓存机制,能很容易的解决此问题!初始化Volley请求队列: //实例化Volley请求队列 RequestQueue queue = Volley.newR...原创 2016-11-04 19:49:41 · 754 阅读 · 0 评论 -
使用PullToRefresh实现下拉刷新和分页加载功能
PullToRefresh是一套实现非常好的下拉刷新库,它支持:1.ListView2.ExpandableListView3.GridView4.WebView等多种常用的需要刷新的View类型,而且使用起来也十分方便。下面带大家一起用下PullToRefreshListView ,其他几个控件大同小异PullToRefreshListView原创 2016-12-25 18:37:58 · 3988 阅读 · 0 评论 -
利用Bundle完成Activity向Fragment传值
Activity向Fragment传值也比较简单,把你要传递的值通过put×××传递进Bundle中,然后调用Fragment的setArguments把要传递的Bundle装载进去,这里数据可以是Stringint,或者是序列化的一个对象值,然后在接收方,调用bundle的get×××得到后,简单解析处理即可,下面我贴上一个传递对象的实例传递数据的Activity中 Hear原创 2017-01-02 14:52:30 · 3135 阅读 · 0 评论 -
安卓中的finishAffinity()方法的使用场景
finishiAffinity()的使用场景是:关闭你当前activity所在栈中的所有的activity。调用activity对象的finishiAffinity()方法,可以关闭当前activity所属的activity栈中所有的activity。如果所有activity都保存在默认栈中,则使用该方法会直接退出程序。利用这一机制,可以巧妙的处理很多问题,例如多Acitivity跳转之后,原创 2016-12-05 20:28:39 · 12980 阅读 · 0 评论 -
使用newInstance()来实例化fragment
这种设计是一种静态工厂方法,让我们在初始化和设置一个新的fragment的时候省去调用它的构造函数和额外的setter方法。为你的Fragment提供静态工厂方法是一种好的做法,因为它封装和抽象了在客户端构造对象所需的步骤。我们直接为它们提供一个静态工厂方法。这样做比调用默认构造方法好,有两个原因:一个是,它方便别人的调用。另一个是,保证了fragment的构建过程不会出错。通过提供一个静原创 2016-12-04 20:06:36 · 3937 阅读 · 0 评论 -
android studio中findViewById的快捷强制类型转换
我比较喜欢的是suffix 快捷键系列,用起来非常爽,代码重构一气呵成。玩法就是,你在输入了一个对象之后,可以通过.xxx的命令+Tab键来完成快速的代码重构,比如object.cast 转型、boolean.if 变成if 结构、int.switch变成switch结构。list.fori 把这个list变成for i 的循环结构。比如 要转换一个View 这样输入:findView原创 2016-11-15 20:21:52 · 15535 阅读 · 0 评论 -
Fragment的增删查操作
1.增加: FragmentManager fm= getFragmentManager(); //Activity用来管理它包含的Frament,通过getFramentManager()获取 FragmentTransaction ft = fm.beginTransaction(); //获取Framgent事务原创 2016-09-30 20:23:08 · 680 阅读 · 0 评论 -
使用Volley的ImageLoader优化listview加载图片
在Listview中加载图片,如果不使用缓存机制的话,ListView的用户体验会特别不好,用户上下滑动Listview时不但会造成图片的错误或者闪动效果,而且还有可能加载错误,自己写缓存又比较麻烦,但是Volley作为一个优秀的第三方网络请求库,给我们封装了图片的缓存,使用起来特别方便项目中,在adapter中要不断的加载图片,刚一开始是使用的AsyncTask采用异步任务的方式原创 2016-10-25 19:31:38 · 1525 阅读 · 0 评论 -
安卓调用系Intent统拨打电话
在安卓里面,拨打电话需要申请权限 然后在代码里简单配置就可以通过Intent跳转到拨打电话的界面了 Intent intent=new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + g.getPhone())); startActivity(intent);原创 2016-10-25 10:34:28 · 428 阅读 · 0 评论 -
安卓使用 AlertDialog.Builder创建单选列表对话框
说到AlertDialog.Builder就不得不提下这个安卓中典型的一个构造者模式,那Buidler模式就是将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示.Builder模式是一步一步创建一个复杂的对象,它允许用户可以只通过指定复杂对象的类型和内容就可以构建它们.那么要为何使用Buidler呢?是为了将构建复杂对象的过程和它的部件分开因为一个复杂的对象,原创 2016-12-29 15:01:14 · 2814 阅读 · 0 评论 -
通过onScrollStateChanged判断ListView的滚动状态
在项目开发中ListView是个特别常见的控件 ,有时候你的项目中可能需要判断出ListView的滚动状态,进而去做一些人性化的操作来提升用户体验,下面我给大家分享一个简单的方法来实现该目的,在此基础上你可以根据你的项目做出具体的发挥。首先让你的ListView实现自身的滚动监听事件listView.setOnScrollListener(this); //注册监听事件然后重原创 2016-12-30 22:12:57 · 4776 阅读 · 0 评论 -
关于Fragment叠加点击穿透的解决方案
项目中采用Activity配合Fragment来完善整体布局框架,但是当多个Fragment添加进Fragment栈时,由于处于栈底的Fragment绑定了点击跟滑动监听事件,当新的Fragment添加进栈的时候,虽然上层的Fragment并没有实现任何监听事件,当时当用户触摸或者在屏幕上滑动的时候依然会触发位于栈底的Fragment上绑定的监听事件,其实这个问题看起来很奇葩,但是解决起来并不难,...原创 2017-01-03 11:12:24 · 7427 阅读 · 0 评论 -
GridView的简单使用
GridView跟ListView使用场景差不多,都是对多数据展示的时候运用比较多的一个控件,但开发中对GridView使用的并不是特别多,大部分场合下大家几乎都在写listview,再加上google新推出了RecyclerView之后,更强大的多数据展示控件后,对GridView 对使用几乎少之又少,但是也有它得天独厚的优势,在宫格展示的时候使用它还是比较方便的,下面我分享一个简单的案例,里面...原创 2017-04-05 18:58:12 · 433 阅读 · 0 评论 -
关于ViewPager当前页卡指示器的简单实现方法
今天的案例为大家分享在Viewpager中当前页中指示器的实现方法,即通常放在ViewPager底部的实心小圆点,用于提示用户当前ViewPager所在的当前页是哪一页。整体实现的思想是通过给ViewPager设置OnPagerChangeListener在onPageSelected方法中设置当前页的选择状态初始化的时候先初始化与list集合size相等的圆点个数: int si...原创 2017-04-07 17:36:38 · 759 阅读 · 0 评论 -
Android花样Text设置神器之SpanableString
TextView在Android中几乎是再常见不过的控件了,几乎遍布在各个角落里,对TextView并没有什么技术点来做分析,但是有时候可能会需要你在项目中处理一些特殊字体,比如下划线,横穿线,亦或者是为TextView部分字体设置点击或者颜色背景等等,这点需求虽然不是什么难事,但是选不好解决方法真的会可能会让你折腾好久。说了这么多无非就是开篇引个题,下面为大家介绍SpanableS...原创 2017-08-13 21:45:13 · 8612 阅读 · 0 评论 -
关于Notification中setLatestEventInfo方法已弃用
今天在更新项目时,把API版本向上更新到25,编译时发现报了一个错误,但是一脸懵逼,后来查了资料才知道在6.0之后setLatestEventInfo方法已被google弃用,为了项目的健全性,无奈只能寻找替代方法。在6.0之前,使用notification我们一般会这样写 NotificationManager manager= (NotificationManager原创 2017-04-23 16:52:34 · 3431 阅读 · 1 评论 -
设置Webview的页面缩放大小
之所以要把这个简单的WebView拿出来单独写除了简单的webview加载页面缩放的设置还是因为在此Fragment中有个小细节需要单独说下是这样的,此Fragment依托于上层Activity,上层Activity继承自ActionBarActivity,并且在activity中应用ToolBar,在Activity上ToolBar上跟跳转到Fragment要显示的标题不一样,里面涉及到原创 2016-10-24 19:41:07 · 17885 阅读 · 0 评论 -
为Toolbar左上角的返回箭头设置点击监听事件
使用Toolbar一定要保证你当前操作的Activity继承自ActionBarActivity,然后在代码中设置支持Toolbar,并且设置home键为可用状态 Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); getSupport原创 2016-10-24 19:30:21 · 22172 阅读 · 2 评论 -
Android系统CountDownTimer倒计时的使用方法
Android系统给开发者提供了一个特别方便的倒计时的类,使用起来也特别方便,由于使用起来方便,我就不详细给大家赘述了,直接贴代码了,代码里面有注释 class MyCountDownTimer extends CountDownTimer { //构造方法 public MyCountDownTimer(long millisInFuture, long原创 2016-10-24 19:23:53 · 896 阅读 · 0 评论 -
去除状态栏让Activity充满整个屏幕
有时候项目需要把整个Activity设置为充满整个屏幕,其实设置起来也很简单,几行代码就能搞定一、在代码中设置public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //去除title requestWindowFeature(Window.FEA原创 2016-08-31 09:40:34 · 1988 阅读 · 0 评论 -
在自己的项目中引入Material design设计风格
Material Design的设计风格是从安卓5.0开始引入的 ,整个风格趋向扁平化,给人一种立体化的感觉,今天就跟大家一块学习下MD的设计理念下面先来看一张图,提供给大家参考对上图的各个数字标志的解释如下①:状态栏颜色("android:colorPrimaryDark")②:APP标题栏颜色(name="android:colorPrimary")原创 2016-08-31 09:01:17 · 2289 阅读 · 0 评论 -
利用SharedPreferences实现记住密码功能
app有个登陆注册功能,为了提升用户体验,自然要引入记住功能,不能让用户每次登陆时都手动输入密码,这样的话,用户体验不言而喻要下降安卓中自带的数据存储方式SharedPreferences,正好解决了这个问题1.利用SharedPreferences存下用户信息 SharedPreferences sp =getSharedPref原创 2016-09-11 17:09:15 · 635 阅读 · 0 评论 -
关于android项目中R文件丢失的解决方法
项目中R文件丢失,对于开发安卓应该是比较常见的问题,解决起来也不是很麻烦,但是需要不同的原因导致的需要用不同的方式解决一般R文件丢失多为导入项目时 ,由于项目的原先的编译环境跟现有的编译环境不一样所致,这时一般选择clean下你的project,或者rebulid下再就是由于资源文件没找到,导致整个项目编译不通过,所以R文件生成不了所致,一般会是在layout文件夹下的xm原创 2016-08-19 18:00:19 · 1126 阅读 · 0 评论 -
安卓调用系统摄像头拍照并保存到本地
最近在写新项目,需求里面需要用到摄像头拍照,并且把排下来的照片放进ImageView中显示,为了后续控件的调用,自然想到要存储在本地,安卓很人性的提供了好多数据存储的方式,在本项目里我选择了存储在手机内存卡上面,调用摄像头拍照思路很简单,利用安卓系统内部的Intent对象传递参数,进行方法回调达到目的,大致源码如下/** * Created by 谢栋 on 2016/8/14. */原创 2016-08-16 15:27:37 · 1525 阅读 · 0 评论 -
安卓多线程之异步任务类解决子线程无法返回数据
昨天操作WebAPI的时候由于涉及到主线程(UI线程)与子线程之间的通信时采用Thread创建子线程,并复写 public void run()方法时,因为run()方法的返回值类型是void的,所以操作无法把执行完成之后的数据返回给主线程,如果要传递数据到主线程肯定要使用安卓的Handler机制,于是放弃了该方法,并且使用AsyncTask异步任务类来实现该操作。下面先来具体说说这原创 2016-07-21 14:42:24 · 6063 阅读 · 0 评论 -
使用URL以及URLConnection从网上下载bitmap
网络对大家来说是开发安卓应用再熟悉不过的了,那,操作网络可能会根据不同人的喜好有不同的方法,下面我带大家梳理下操作网络的几种方法具体使用,依据大家的具体喜好选择使用1.使用java系统提供的URL,URLConnection操作网络,这个大家应该都比较熟,配合IO操作,具体示例下载网络bitmap图片步骤如下1.创建URL以及URLConnection对象2.设置连接参原创 2016-07-21 10:50:05 · 1004 阅读 · 0 评论 -
Activity之间的数据传递
activity作为安卓的四大基本组件之一,在开发中是经常用的,几乎每一个app都要用到activity,那么不同的activity之间数据的传递就变得相当重要了;安卓系统为开发者提供了Android.os.Bundle对象,用于数据的封闭传送,把需要传递的数据通过Bundle传递出去,在另一activity中,做相应的接收处理即可。1.发送数据的Activity A原创 2016-07-21 09:37:43 · 481 阅读 · 0 评论 -
关于Bundle在activity之间传递对象的方法
大家都对Bundle比较熟悉了,在多个activity之间通信之间它功不可没,下面我给大家梳理利用Bundle之间传递对象的方法首先是两个Activity,第一个是发送的Activity Intent mIntent =new Intent(getActivity(),ItemActivity.class); Bundle bundle =new Bundle()原创 2016-09-01 11:13:24 · 1923 阅读 · 0 评论 -
使用Volley加载网络图片
ImageRequest和StringRequest和JsonRequest的用法,并且总结出了它们的用法都是非常类似的,基本就是进行以下三步操作即可: 1. 创建一个RequestQueue对象。 2. 创建一个Request对象。 3. 将Request对象添加到RequestQueue里面。其中,StringRequest和原创 2016-09-01 17:13:54 · 634 阅读 · 0 评论 -
安卓使用pull解析器解析xml
XmlPull和Sax类似,是基于流(stream)操作文件,然后根据节点事件回调开发者编写的处理程序。因为是基于流的处理,因此Xmlpull和 Sax都比较节约内存资源,不会象Dom那样要把所有节点以对橡树的形式展现在内存中。 但Xmlpull比Sax更简明,而且不需要扫描完整个流。概述:PULL解析器小巧轻便,解析速度快,简单易用,非常适合在Android移动设备中原创 2016-09-26 09:48:22 · 553 阅读 · 0 评论 -
ViewPager实现各个选项卡之间的切换
ViewPage是安卓V4包中提供的一个组件,作为一个布局管理器,继承于ViewGroup和LinearLayout/FrameLayout等同属于布局管理器.一般ViewPage允许用户通过向左向右滑动实现页面的切换,当然你还需要实现一个PageAdapter来提供切换所需要的View.wPage作为一个布局管理器,那有时候项目可能会需要你来实现一个能在各个选项卡之间来回切换的功能,那么View原创 2016-09-20 19:20:07 · 2004 阅读 · 0 评论 -
Toast实现图文混排
Toast在安卓开发中实在是再普通不过的组件了,但是有时候需要个性点的需求,那么可能作为开发者的你就要自己定制Toast了,下面我为大家整理下如何使用Toast实现图文混排。1.Toast显示图片原理很简单,直接上代码了 //Toast显示图片 Toast mToast = new Toast(this); //添加ImageVIew控件原创 2016-09-20 10:42:50 · 440 阅读 · 0 评论 -
安卓中PopupWindows的使用
PopupWindows使用起来特别简单,就不再给大家分析了,直接上代码了功能代码public class PopupWindows extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedI原创 2016-09-22 21:09:25 · 765 阅读 · 0 评论 -
Jsoup爬取360电影网上的信息
跟我上一篇写的博客差不多,就不在多说了,直接贴上java代码了package com.xiedong.Jsoup;import java.io.IOException;import java.util.ArrayList;import java.util.List;import org.jsoup.Jsoup;import org.jsoup.nodes.Document;原创 2016-09-04 15:42:53 · 1610 阅读 · 0 评论 -
利用Jsoup爬取网页内容
jsoup的强大之处在这里就不多说,最近在写项目,需要爬取网页上的内容,自然想到的是利用Jsoup来处理,项目中是利用Jsoup爬取学校信息门户的新闻消息,然后放进客户端网页的html代码如下8月30日,日照市常务副市长王斌一行人来我校进行调研。校长戚万学,副校长康淑敏、杨冰等热情接待了王斌一行。校区管理办公室、学生工作办公室等相关负责人参加了座谈。王斌表示,曲阜师范大学有深厚的文化与学术底蕴原创 2016-09-04 10:26:47 · 5953 阅读 · 0 评论 -
android中ScrollView中TextView无法铺满全屏解决方案
上午在写项目时,需要用到多行显示文字,但是整个铺满窗体有点丑,自然想到的是在ScrollView中嵌套TextView,但是写完之后发现textview上部的文字好像被遮盖掉了,怎么都显示不出来,看着特别揪心,在xml调了好多属性也没解决,是给textview设置了 android:layout_gravity="center"属性所致,其他网友说的在ScrollView的xml中加原创 2016-08-12 09:58:52 · 3179 阅读 · 1 评论 -
让textView实现跑马灯效果
话不多说,由于实现起来比较简单,直接上代码原创 2016-09-01 09:09:32 · 319 阅读 · 0 评论 -
利用handler的延时实现app载入时loading
基本上每个app都会有个独特而有美观的loading引导界面,放在软件刚被打开的时候,给用户一个清晰友好的交互体验,下面我直接贴上简单的实现过程,仅供参考package com.zhuandian.fanyi.Splash;import android.app.Activity;import android.content.Intent;import android.os.Bund原创 2016-07-24 17:22:19 · 1900 阅读 · 0 评论