Android SwipeRefreshLayout 官方下拉刷新控件介绍

下面App基本都有下拉刷新的功能,以前基本都使用XListView或者自己写一个下拉刷新,近期Google提供了一个官方的下拉刷新控件SwipeRefreshLayout,我感觉还不错啊,见惯了传统的下拉刷新,这个反而给人耳目一新的感觉(貌似知乎的APP已经使用这种下拉刷新了)。 Google也在官方网站给出了V4的兼容包: ![](http://img.blog.csdn.net/20140426143208625?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbG1qNjIzNTY1Nzkx/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center) 顺便看一眼API呗: ![](http://img.blog.csdn.net/20140426143234968?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbG1qNjIzNTY1Nzkx/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center) 和XlistView差不多,还是很方便使用的,大概就这4个常用的方法,下面贴个简单的例子。 1、布局文件: &nbsp; **[html]** [view plain](http://blog.csdn.net/lmj623565791/article/details/24521483#)[copy](http://blog.csdn.net/lmj623565791/article/details/24521483#)[![在CODE上查看代码片](https://code.csdn.net/assets/CODE_ico.png)](https://code.csdn.net/snippets/313476)[![派生到我的代码片](https://code.csdn.net/assets/ico_fork.svg)](https://code.csdn.net/snippets/313476/fork) <div> </div> </div> </div> - <span style="color: black;"><span class="tag" style="font-weight: bold; color: #993300;"><</span><span class="tag-name" style="font-weight: bold; color: #993300;">RelativeLayout</span> <span class="attribute" style="color: red;">xmlns:android</span>=<span class="attribute-value" style="color: blue;">&#8220;http://schemas.android.com/apk/res/android&#8221;</span> </span> - <span style="color: black;"> <span class="attribute" style="color: red;">android:layout_width</span>=<span class="attribute-value" style="color: blue;">&#8220;match_parent&#8221;</span> </span> - <span style="color: black;"> <span class="attribute" style="color: red;">android:layout_height</span>=<span class="attribute-value" style="color: blue;">&#8220;match_parent&#8221;</span> <span class="tag" style="font-weight: bold; color: #993300;">></span> </span> - <span style="color: black;"> </span> - <span style="color: black;"> <span class="tag" style="font-weight: bold; color: #993300;"><</span><span class="tag-name" style="font-weight: bold; color: #993300;">android.support.v4.widget.SwipeRefreshLayout</span> </span> - <span style="color: black;"> <span class="attribute" style="color: red;">android:id</span>=<span class="attribute-value" style="color: blue;">&#8220;@+id/id_swipe_ly&#8221;</span> </span> - <span style="color: black;"> <span class="attribute" style="color: red;">android:layout_width</span>=<span class="attribute-value" style="color: blue;">&#8220;match_parent&#8221;</span> </span> - <span style="color: black;"> <span class="attribute" style="color: red;">android:layout_height</span>=<span class="attribute-value" style="color: blue;">&#8220;match_parent&#8221;</span> <span class="tag" style="font-weight: bold; color: #993300;">></span> </span> - <span style="color: black;"> </span> - <span style="color: black;"> <span class="tag" style="font-weight: bold; color: #993300;"><</span><span class="tag-name" style="font-weight: bold; color: #993300;">ListView</span> </span> - <span style="color: black;"> <span class="attribute" style="color: red;">android:id</span>=<span class="attribute-value" style="color: blue;">&#8220;@+id/id_listview&#8221;</span> </span> - <span style="color: black;"> <span class="attribute" style="color: red;">android:layout_width</span>=<span class="attribute-value" style="color: blue;">&#8220;match_parent&#8221;</span> </span> - <span style="color: black;"> <span class="attribute" style="color: red;">android:layout_height</span>=<span class="attribute-value" style="color: blue;">&#8220;match_parent&#8221;</span> <span class="tag" style="font-weight: bold; color: #993300;">></span> </span> - <span style="color: black;"> <span class="tag" style="font-weight: bold; color: #993300;"></</span><span class="tag-name" style="font-weight: bold; color: #993300;">ListView</span><span class="tag" style="font-weight: bold; color: #993300;">></span> </span> - <span style="color: black;"> <span class="tag" style="font-weight: bold; color: #993300;"></</span><span class="tag-name" style="font-weight: bold; color: #993300;">android.support.v4.widget.SwipeRefreshLayout</span><span class="tag" style="font-weight: bold; color: #993300;">></span> </span> - <span style="color: black;"> </span> - <span style="color: black;"><span class="tag" style="font-weight: bold; color: #993300;"></</span><span class="tag-name" style="font-weight: bold; color: #993300;">RelativeLayout</span><span class="tag" style="font-weight: bold; color: #993300;">></span> </span> 2、MainActivty:&nbsp; &nbsp; **[java]** [view plain](http://blog.csdn.net/lmj623565791/article/details/24521483#)[copy](http://blog.csdn.net/lmj623565791/article/details/24521483#)[![在CODE上查看代码片](https://code.csdn.net/assets/CODE_ico.png)](https://code.csdn.net/snippets/313476)[![派生到我的代码片](https://code.csdn.net/assets/ico_fork.svg)](https://code.csdn.net/snippets/313476/fork) <div> </div> </div> </div> - <span style="color: black;"><span class="comment" style="color: #008200;">/*</span> </span> - <span style="color: black;"><span class="comment" style="color: #008200;"> * Created by Storm Zhang, Mar 31, 2014.</span> </span> - <span style="color: black;"><span class="comment" style="color: #008200;"> */</span> </span> - <span style="color: black;"> </span> - <span style="color: black;"><span class="keyword" style="font-weight: bold; color: #006699;">package</span> com.zhy.swiperefreshlayoutdemo; </span> - <span style="color: black;"> </span> - <span style="color: black;"><span class="keyword" style="font-weight: bold; color: #006699;">import</span> java.util.ArrayList; </span> - <span style="color: black;"><span class="keyword" style="font-weight: bold; color: #006699;">import</span> java.util.Arrays; </span> - <span style="color: black;"><span class="keyword" style="font-weight: bold; color: #006699;">import</span> java.util.List; </span> - <span style="color: black;"> </span> - <span style="color: black;"><span class="keyword" style="font-weight: bold; color: #006699;">import</span> android.annotation.SuppressLint; </span> - <span style="color: black;"><span class="keyword" style="font-weight: bold; color: #006699;">import</span> android.app.Activity; </span> - <span style="color: black;"><span class="keyword" style="font-weight: bold; color: #006699;">import</span> android.os.Bundle; </span> - <span style="color: black;"><span class="keyword" style="font-weight: bold; color: #006699;">import</span> android.os.Handler; </span> - <span style="color: black;"><span class="keyword" style="font-weight: bold; color: #006699;">import</span> android.support.v4.widget.SwipeRefreshLayout; </span> - <span style="color: black;"><span class="keyword" style="font-weight: bold; color: #006699;">import</span> android.util.Log; </span> - <span style="color: black;"><span class="keyword" style="font-weight: bold; color: #006699;">import</span> android.widget.ArrayAdapter; </span> - <span style="color: black;"><span class="keyword" style="font-weight: bold; color: #006699;">import</span> android.widget.ListView; </span> - <span style="color: black;"> </span> - <span style="color: black;"><span class="keyword" style="font-weight: bold; color: #006699;">public</span> <span class="keyword" style="font-weight: bold; color: #006699;">class</span> MainActivity <span class="keyword" style="font-weight: bold; color: #006699;">extends</span> Activity <span class="keyword" style="font-weight: bold; color: #006699;">implements</span> SwipeRefreshLayout.OnRefreshListener </span> - <span style="color: black;">{ </span> - <span style="color: black;"> </span> - <span style="color: black;"> <span class="keyword" style="font-weight: bold; color: #006699;">private</span> <span class="keyword" style="font-weight: bold; color: #006699;">static</span> <span class="keyword" style="font-weight: bold; color: #006699;">final</span> <span class="keyword" style="font-weight: bold; color: #006699;">int</span> REFRESH_COMPLETE = <span class="number" style="color: #c00000;">0X110</span>; </span> - <span style="color: black;"> <span class="keyword" style="font-weight: bold; color: #006699;">private</span> SwipeRefreshLayout mSwipeLayout; </span> - <span style="color: black;"> <span class="keyword" style="font-weight: bold; color: #006699;">private</span> ListView mListView; </span> - <span style="color: black;"> <span class="keyword" style="font-weight: bold; color: #006699;">private</span> ArrayAdapter<String> mAdapter; </span> - <span style="color: black;"> <span class="keyword" style="font-weight: bold; color: #006699;">private</span> List<String> mDatas = <span class="keyword" style="font-weight: bold; color: #006699;">new</span> ArrayList<String>(Arrays.asList(<span class="string" style="color: blue;">&#8220;Java&#8221;</span>, <span class="string" style="color: blue;">&#8220;Javascript&#8221;</span>, <span class="string" style="color: blue;">&#8220;C++&#8221;</span>, <span class="string" style="color: blue;">&#8220;Ruby&#8221;</span>, <span class="string" style="color: blue;">&#8220;Json&#8221;</span>, </span> - <span style="color: black;"> <span class="string" style="color: blue;">&#8220;HTML&#8221;</span>)); </span> - <span style="color: black;"> </span> - <span style="color: black;"> <span class="keyword" style="font-weight: bold; color: #006699;">private</span> Handler mHandler = <span class="keyword" style="font-weight: bold; color: #006699;">new</span> Handler() </span> - <span style="color: black;"> { </span> - <span style="color: black;"> <span class="keyword" style="font-weight: bold; color: #006699;">public</span> <span class="keyword" style="font-weight: bold; color: #006699;">void</span> handleMessage(android.os.Message msg) </span> - <span style="color: black;"> { </span> - <span style="color: black;"> <span class="keyword" style="font-weight: bold; color: #006699;">switch</span> (msg.what) </span> - <span style="color: black;"> { </span> - <span style="color: black;"> <span class="keyword" style="font-weight: bold; color: #006699;">case</span> REFRESH_COMPLETE: </span> - <span style="color: black;"> mDatas.addAll(Arrays.asList(<span class="string" style="color: blue;">&#8220;Lucene&#8221;</span>, <span class="string" style="color: blue;">&#8220;Canvas&#8221;</span>, <span class="string" style="color: blue;">&#8220;Bitmap&#8221;</span>)); </span> - <span style="color: black;"> mAdapter.notifyDataSetChanged(); </span> - <span style="color: black;"> mSwipeLayout.setRefreshing(<span class="keyword" style="font-weight: bold; color: #006699;">false</span>); </span> - <span style="color: black;"> <span class="keyword" style="font-weight: bold; color: #006699;">break</span>; </span> - <span style="color: black;"> </span> - <span style="color: black;"> } </span> - <span style="color: black;"> }; </span> - <span style="color: black;"> }; </span> - <span style="color: black;"> </span> - <span style="color: black;"> <span class="annotation" style="color: #646464;">@SuppressLint</span>(<span class="string" style="color: blue;">&#8220;InlinedApi&#8221;</span>) </span> - <span style="color: black;"> <span class="keyword" style="font-weight: bold; color: #006699;">protected</span> <span class="keyword" style="font-weight: bold; color: #006699;">void</span> onCreate(Bundle savedInstanceState) </span> - <span style="color: black;"> { </span> - <span style="color: black;"> <span class="keyword" style="font-weight: bold; color: #006699;">super</span>.onCreate(savedInstanceState); </span> - <span style="color: black;"> setContentView(R.layout.activity_main); </span> - <span style="color: black;"> </span> - <span style="color: black;"> mListView = (ListView) findViewById(R.id.id_listview); </span> - <span style="color: black;"> mSwipeLayout = (SwipeRefreshLayout) findViewById(R.id.id_swipe_ly); </span> - <span style="color: black;"> </span> - <span style="color: black;"> mSwipeLayout.setOnRefreshListener(<span class="keyword" style="font-weight: bold; color: #006699;">this</span>); </span> - <span style="color: black;"> mSwipeLayout.setColorScheme(android.R.color.holo_blue_bright, android.R.color.holo_green_light, </span> - <span style="color: black;"> android.R.color.holo_orange_light, android.R.color.holo_red_light); </span> - <span style="color: black;"> mAdapter = <span class="keyword" style="font-weight: bold; color: #006699;">new</span> ArrayAdapter<String>(<span class="keyword" style="font-weight: bold; color: #006699;">this</span>, android.R.layout.simple_list_item_1, mDatas); </span> - <span style="color: black;"> mListView.setAdapter(mAdapter); </span> - <span style="color: black;"> </span> - <span style="color: black;"> } </span> - <span style="color: black;"> </span> - <span style="color: black;"> <span class="keyword" style="font-weight: bold; color: #006699;">public</span> <span class="keyword" style="font-weight: bold; color: #006699;">void</span> onRefresh() </span> - <span style="color: black;"> { </span> - <span style="color: black;"> <span class="comment" style="color: #008200;">// Log.e(&#8220;xxx&#8221;, Thread.currentThread().getName());</span> </span> - <span style="color: black;"> <span class="comment" style="color: #008200;">// UI Thread</span> </span> - <span style="color: black;"> </span> - <span style="color: black;"> mHandler.sendEmptyMessageDelayed(REFRESH_COMPLETE, <span class="number" style="color: #c00000;">2000</span>); </span> - <span style="color: black;"> </span> - <span style="color: black;"> } </span> - <span style="color: black;">} </span> 好了,结束,我感觉效果挺好看的,不妨试试。&nbsp; 效果图: ![](http://img.blog.csdn.net/20140426144728031) &nbsp; &nbsp; ok ~ &nbsp; [源码点击此处下载](http://download.csdn.net/detail/lmj623565791/7256271) 转载:http://blog.csdn.net/lmj623565791/article/details/24521483 3 踩

2014年8月5日 · 5 分钟 · 天边的星星

开源力量新版在线学习网站开通啦!

开源力量新版在线学习网站开通啦! 我们同期开放了往期公开课的全部学习视频,在过去的一年里,55位技术大牛倾力奉献,超过1.8万人次共同参与了学习! 马上学习吧,可以有更多的时间学习了,不如现在就开始吧! 1.马万平 现任职于大型电信系统服务软件提供商讲“纠结中前行的配置管理 ” 学习视频:http://www.osforce.cn/course/60 2.邱剑 美团网技术部资深系统工程师讲“KVM虚拟机的性能优化” 学习视频:http://www.osforce.cn/course/77 3.章文嵩 阿里巴巴集团副总裁讲“拥抱开源,企业IT自主之路” 学习视频:http://www.osforce.cn/course/67 4.潘志彪 比特基金首席技术顾问讲“为什么比特币技术上是靠谱的” 学习视频:http://www.osforce.cn/course/86 5.Eric Linux内核华人贡献前10讲“Linux虚拟化技术” 学习视频:http://www.osforce.cn/course/91 6.Louis IBM Hadoop架构师讲“Hadoop大数据入门指引” 学习视频:http://www.osforce.cn/course/87 7.许智翔 python-segment和uniproxy的作者讲”Python入门指引“ 学习视频:http://www.osforce.cn/course/64 8.施懿民 知平软件创始人讲”生产环境下的Java排错调优“ 学习视频:http://www.osforce.cn/course/55 9.许式伟 七牛云存储CEO讲”Go语言入门“ 学习视频:http://www.osforce.cn/course/56 10.宋宝华 《Linux设备驱动开发详解》作者讲”move to Linux 3.x for ARM“ 学习视频:http://www.osforce.cn/course/58 11.鲁义明 开源项目 Gigah的维护人讲”跟我一起阅读Nginx源代码“ 学习视频:http://www.osforce.cn/course/59 12.马钧 开源软件爱好者和学习者讲”一起来学Scala“ 学习视频:http://www.osforce.cn/course/61 13.胡长城 盛大网络“Youni短信”技术总监讲“移动互联网研发团队的技术管理实践探讨” 学习视频:http://www.osforce.cn/course/63 14.莫华枫 盛大云存储技术负责人讲“云计算之对象存储的技术选择” 学习视频:http://www.osforce.cn/course/65 15.彭晨阳 Jdon.com自媒体主持人讲“Java事件编程” 学习视频:http://www.osforce.cn/course/66 16.祁宏 上海动量软件技术有限公司业务流程顾问讲“用开源软件构建App的高效服务端” 学习视频:http://www.osforce.cn/course/68 17.王伟 复旦视觉艺术新媒体学院教师讲“交互设计,不只是界面” 学习视频:http://www.osforce.cn/course/70 18.吴朱华 IBM中国研究院参与过多款云计算操作系统的开发工作讲“大数据的实时分析与应用案例分享” 学习视频 :http://www.osforce.cn/course/71 19.郭雄飞 景略半导体嵌入系统设计经理讲“一个小团队的敏捷项目管理实践” 学习视频:http://www.osforce.cn/course/72 20.华康强 微软认证程序开发专家, 微软认证讲师讲”Windows8应用开发概览“ 学习视频:http://www.osforce.cn/course/73 21.郭理靖 京东商城云平台开发者服务组高级经理讲“云开两朵,各表一枝–公、私有云架构异同点与难点” 学习视频:http://www.osforce.cn/course/74 22.陈沙克 IDC行业里从事云计算相关工作讲“跟我一起玩转OpenStack” 学习视频:http://www.osforce.cn/course/75 23.沈大海 移动互联网应用开发专家,开源技术讲师讲“教你用Cocos2D-X开发跨平台移动应用” 学习视频:http://www.osforce.cn/course/76 24.李皓 小米游戏运营中心技术总监讲“Think in Android” 学习视频:http://www.osforce.cn/course/78 25.谷瑞 RT-Thread内核开发成员讲“实时操作系统RT-Thread开发者专场” 学习视频:http://www.osforce.cn/course/79 26.李道兵 中文维基百科前管理员讲“HTTP协议相关的若干安全问题” 学习视频:http://www.osforce.cn/course/84 27.林鹏 当当网安全经理讲”网络安全渗透平台BackTrack5基础使用“ 学习视频:http://www.osforce.cn/course/85 28. 由开源力量、CSDN CODE和多个开源社区共同主办的“我们的开源项目”暨开源力量”开源力量公开课2013年度庆典“ 学习视频:http://www.osforce.cn/course/89 29.何晓阳 北京蓝海讯通科技有限公司CEO讲”应用性能管理的过去现在和未来“ 学习视频:http://www.osforce.cn/course/90 30.蔡书 红帽软件解决方案架构师讲”另辟蹊径,基于轻量虚拟化的PaaS平台–RedHat OpenShift“ 学习视频:http://www.osforce.cn/course/92 31.杨尚川 2013年度优秀开源项目APDPlat发起人,资深Nutch搜索引擎专家讲”Nutch:从搜索引擎到网络爬虫“ 学习视频:http://www.osforce.cn/course/93 32.张建锋 JBossAS Core Developer讲”JBoss应用服务器架构体系和JavaEE的技术变革之路“ 学习视频:http://www.osforce.cn/course/94 33.龙文选 黑鸭子中国首席专家讲”2013“我们的开源项目” 学习视频:http://www.osforce.cn/course/95 更多公开课,免费视频学习请关注官网:http://www.osforce.cn/ ...

2014年8月4日 · 1 分钟 · 天边的星星

nginx资料整理

How to install Nginx on Windows http://www.nginxtips.com/how-to-install-nginx-in-windows/ 下载windows的nginx压缩包,解压运行(nginx.exe)。 端口占用导致win7下无法启动nginx服务器,启动(nginx.exe)窗口一闪而过,没有提示出来链接网络。 修改nginx/conf/nginx.conf中 server { listen 8011;(修改端口号就行了) ……} 再次运行(nginx.exe)是不是启动成功 输入http://localhost:8011/ 出现: Welcome to nginx! 恭喜你,nginx启动成功了! 配置nginx到环境变量(主要下面命令要用,否则输入下面命令要带上nginx.exe的全路径) nginx常用命令 nginx -s stop 强制关闭 nginx -s quit 安全关闭 nginx -s reload 改变配置文件的时候,重启nginx工作进程,来时配置文件生效 nginx -s reopen 打开日志文件 常用配置 C:\nginx\conf\nginx.conf,使用自己定义的conf文件如my.conf,命令为nginx -c conf\my.conf 常用配置如下: Nginx.conf代码 http { server { #1.侦听80端口 listen 80; location / { 2. 默认主页目录在nginx安装目录的html子目录。 root html; index index.html index.htm; 3. 没有索引页时,罗列文件和子目录 autoindex on; autoindex_exact_size on; autoindex_localtime on; } ...

2014年8月4日 · 1 分钟 · 天边的星星

Nginx 0.8.x + PHP 5.2.13(FastCGI)搭建胜过Apache十倍的Web服务器(第6版)

中文的维基百科:http://wiki.nginx.org/NginxChs 以下内容转自http://zyan.cc/nginx_php_v6/ 前言:本文是我撰写的关于搭建“Nginx + PHP(FastCGI)”Web服务器的第6篇文章。本系列文章作为国内最早详细介绍 Nginx + PHP 安装、配置、使用的资料之一,为推动 Nginx 在国内的发展产生了积极的作用。本文可能不断更新小版本,请记住原文链接“http://blog.zyan.cc/nginx_php_v6/”,获取最新内容。第6篇文章主要介绍了Nginx 0.8.x新的平滑重启方式,将PHP升级到了5.2.14,修正了PEAR问题。另将MySQL 5.1.x升级到了5.5.x系列,配置文件变更较大。 链接:《2007年9月的第1版》、《2007年12月的第2版》、《2008年6月的第3版》、《2008年8月的第4版》、《2009年5月的第5版》 Nginx (“engine x”) 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,它已经在该站点运行超过三年了。Igor 将源代码以类BSD许可证的形式发布。 Nginx 超越 Apache 的高性能和稳定性,使得国内使用 Nginx 作为 Web 服务器的网站也越来越多,其中包括新浪博客、新浪播客、网易新闻、腾讯网、搜狐博客等门户网站频道,六间房、56.com等视频分享网站,Discuz!官方论坛、水木社区等知名论坛,盛大在线<sp ...

2014年8月4日 · 1 分钟 · 天边的星星

windows hosts文件配置

Host文件目录C:\Windows\System32\drivers\etc # Copyright (c) 1993-2009 Microsoft Corp. # This is a sample HOSTS file used by Microsoft TCP/IP for Windows. # This file contains the mappings of IP addresses to host names. Each # entry should be kept on an individual line. The IP address should # be placed in the first column followed by the corresponding host name. # The IP address and the host name should be separated by at least one # space. ...

2014年8月3日 · 6 分钟 · 天边的星星

CentOS Linux中zip压缩和unzip解压缩命令详解

以下命令均在/home目录下操作 cd /home #进入/home目录** **1、把/home目录下面的mydata目录压缩为mydata.zip zip -r mydata.zip mydata #压缩mydata目录 2、把/home目录下面的mydata.zip解压到mydatabak目录里面 unzip mydata.zip -d mydatabak 3、把/home目录下面的abc文件夹和123.txt压缩成为abc123.zip zip -r abc123.zip abc 123.txt 4、把/home目录下面的wwwroot.zip直接解压到/home目录里面 unzip wwwroot.zip 5、把/home目录下面的abc12.zip、abc23.zip、abc34.zip同时解压到/home目录里面 unzip abc*.zip 6、查看把/home目录下面的wwwroot.zip里面的内容 unzip -v wwwroot.zip 7、验证/home目录下面的wwwroot.zip是否完整 unzip -t wwwroot.zip 8、把/home目录下面wwwroot.zip里面的所有文件解压到第一级目录 unzip -j wwwroot.zip 主要参数 -c:将解压缩的结果 -l:显示压缩文件内所包含的文件 -p:与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换 -t:检查压缩文件是否正确 -u:与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其它文件解压缩到目录中 -v:执行是时显示详细的信息 -z:仅显示压缩文件的备注文字 -a:对文本文件进行必要的字符转换 -b:不要对文本文件进行字符转换 -C:压缩文件中的文件名称区分大小写 -j:不处理压缩文件中原有的目录路径 -L:将压缩文件中的全部文件名改为小写 -M:将输出结果送到more程序处理 -n:解压缩时不要覆盖原有的文件 -o:不必先询问用户,unzip执行后覆盖原有文件 -P<密码>:使用zip的密码选项 -q:执行时不显示任何信息 -s:将文件名中的空白字符转换为底线字符 -V:保留VMS的文件版本信息 -X:解压缩时同时回存文件原来的UID/GID ...

2014年8月2日 · 1 分钟 · 天边的星星

CentOS开启FTP及配置用户

原文链接: http://www.centos.bz/2011/03/centos-install-vsftpd-ftp-server/ vsftpd作为FTP服务器,在Linux系统中是非常常用的。下面我们介绍如何在centos系统上安装vsftp。 什么是vsftpd vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序。特点是小巧轻快,安全易用。 vsftpd 的名字代表”very secure FTP daemon”, 安全是它的开发者 Chris Evans 考虑的首要问题之一。在这个 FTP 服务器设计开发的最开始的时候,高安全性就是一个目标。 安装vsftpd 1、以管理员(root)身份执行以下命令 - yum install vsftpd 2、设置开机启动vsftpd ftp服务 - chkconfig vsftpd on 3、启动vsftpd服务 - service vsftpd start 管理vsftpd相关命令: 停止vsftpd: service vsftpd stop 重启vsftpd: service vsftpd restart 配置防火墙 打开/etc/sysconfig/iptables文件 - vi /etc/sysconfig/iptables 在REJECT行之前添加如下代码 - -A RH-Firewall-1-INPUT -m state &#8211;state NEW -m tcp -p tcp &#8211;dport 21 -j ACCEPT 保存和关闭文件,重启防火墙 ...

2014年8月1日 · 1 分钟 · 天边的星星

CentOS下开启mysql远程连接,远程管理数据库

当服务器没有运行php、没装phpmyadmin的时候,远程管理mysql就显得有必要了。因为在CentOS下设置的,所以标题加上了CentOS,以下的命令在debian等系统下应该也OK。 mysql –u root –p mysql # 第1个mysql是执行命令,第2个mysql是系统数据名称 mysql> select Host,User from user; 在mysql控制台执行: grant all privileges on . to ‘root’@‘%’ identified by‘123456’with grant option; # root是用户名,%代表任意主机,’123456’指定的登录密码(这个和本地的root密码可以设置不同的,互不影响) flush privileges;# 重载系统权限 exit; 允许3306端口 iptables –I INPUT –p tcp –m state —state NEW –m tcp —dport 3306–j ACCEPT ...

2014年8月1日 · 1 分钟 · 天边的星星

CentOS 系统 LAMP(Apache+MySQL+PHP) 安装步骤

先来解释一下,什么是 LAMP。正如标题所言,LAMP 实际上就是 Linux、Apache、MySQL、PHP 四个名称的缩写,当然最后一个 “P” 还有其他说法是 Perl 或者 Python。不用多说了,本文讲解的就是 Linux、Apache、MySQL、PHP 这四个东西,所以就这样解释了。 自己很早就在做网站,最初玩的是 ASP,后来主要研究 .Net,也用 .Net 搞过类似的开发。但是自己最主要还是想把网站做起来,于是乎就将主要精力花在了网站运营上了,当然建站就选用了市面上成熟的一些 CMS 或者是博客程序。目前的 CMS 和博客程序实际上都可以融入到一起,因为其内容的表现形式上相当的接近,故选择哪一块来做,完全看自己的特长了。 由于 Linux 和 PHP 的免费,在国外是相当的流行。国内大部分主机都是 Windows 平台,而我学的 ASP 和 .Net 刚好能搭配运行起来。后来由于种种原因,我的网站都移民到了国外,而在国外找一个性价比好的 Windows 主机实在是件难事,不光语言上的阻碍,国外版权意识很好,所以很少有性价比好的 Windows 主机。我不得不转向了 Linux 平台。而且非常流行的 WordPress 吸引了我,故目前主要注意力就集中在 Linux 主机和 PHP 上。虽然自己对 PHP 基本不了解,呵呵。 虽然 Linux 平台上好的组件不止 Apache 一个,例如俄罗斯人开发的 Nginx,还有性能超强的 LiteSpeed 等等,这两者我都用过,前者以高效、资源占用低为特点,据说腾讯网就是基于此运行的,后者是以性能强大著称,同样据说这是 WordPress 官方推荐的用来运行 WordPress 最佳组件。但是呢,各种网上资料表明,虽然 Apache 性能、资源占用不如其他组件,但是 Apache 开发的目标就是以稳定为主。任何一个网站难道不是希望能够稳定运行?所以我还是选择学习 Apache 来作为网站的服务器环境。学会了一个,其他就能够举一反三了。 一般情况下,安装的都是最新的正式版,除非你有特殊需求,要安装指定的版本,本文暂不讨论。从最基础的开始,一点点完成一个可用的 Linux 主机。这里就开始介绍如何在 CentOS 6.0 上安装 LAMP 组件。经过如下语句安装,目前安装到的版本为: ...

2014年8月1日 · 2 分钟 · 天边的星星

Android ActionBar完全解析,使用官方推荐的最佳导航栏(下)

转载:http://blog.csdn.net/guolin_blog/article/details/25466665 本篇文章主要内容来自于Android Doc,我翻译之后又做了些加工,英文好的朋友也可以直接去读原文。 http://developer.android.com/guide/topics/ui/actionbar.html 限于篇幅的原因,在上篇文章中我们只学习了ActionBar基础部分的知识,那么本篇文章我们将接着上一章的内容继续学习,探究一下ActionBar更加高级的知识。如果你还没有看过前面一篇文章的话,建议先去阅读Android ActionBar完全解析,使用官方推荐的最佳导航栏(上)。 添加Action Provider 和Action View有点类似,Action Provider也可以将一个Action按钮替换成一个自定义的布局。但不同的是,Action Provider能够完全控制事件的所有行为,并且还可以在点击的时候显示子菜单。 为了添加一个Action Provider,我们需要在标签中指定一个actionViewClass属性,在里面填入Action Provider的完整类名。我们可以通过继承ActionProvider类的方式来创建一个自己的Action Provider,同时,Android也提供好了几个内置的Action Provider,比如说ShareActionProvider。 由于每个Action Provider都可以自由地控制事件响应,所以它们不需要在onOptionsItemSelected()方法中再去监听点击事件,而是应该在onPerformDefaultAction()方法中去执行相应的逻辑。 那么我们就先来看一下ShareActionProvider的简单用法吧,编辑menu资源文件,在里面加入ShareActionProvider的声明,如下所示: **[html]** [view plain](http://blog.csdn.net/guolin_blog/article/details/25466665#)[copy](http://blog.csdn.net/guolin_blog/article/details/25466665#)[![在CODE上查看代码片](https://code.csdn.net/assets/CODE_ico.png)](https://code.csdn.net/snippets/398375)[![派生到我的代码片](https://code.csdn.net/assets/ico_fork.svg)](https://code.csdn.net/snippets/398375/fork) <div> </div> </div> - <span style="color: black;"><span class="tag" style="font-weight: bold; color: #993300;"><</span><span class="tag-name" style="font-weight: bold; color: #993300;">menu</span> <span class="attribute" style="color: red;">xmlns:android</span>=<span class="attribute-value" style="color: blue;">&#8220;http://schemas.android.com/apk/res/android&#8221;</span> </span> - <span style="color: black;"> <span class="attribute" style="color: red;">xmlns:tools</span>=<span class="attribute-value" style="color: blue;">&#8220;http://schemas.android.com/tools&#8221;</span> </span> - <span style="color: black;"> <span class="attribute" style="color: red;">tools:context</span>=<span class="attribute-value" style="color: blue;">&#8220;com.example.actionbartest.MainActivity&#8221;</span> <span class="tag" style="font-weight: bold; color: #993300;">></span> </span> - <span style="color: black;"> </span> - <span style="color: black;"> <span class="tag" style="font-weight: bold; color: #993300;"><</span><span class="tag-name" style="font-weight: bold; color: #993300;">item</span> </span> - <span style="color: black;"> <span class="attribute" style="color: red;">android:id</span>=<span class="attribute-value" style="color: blue;">&#8220;@+id/action_share&#8221;</span> </span> - <span style="color: black;"> <span class="attribute" style="color: red;">android:actionProviderClass</span>=<span class="attribute-value" style="color: blue;">&#8220;android.widget.ShareActionProvider&#8221;</span> </span> - <span style="color: black;"> <span class="attribute" style="color: red;">android:showAsAction</span>=<span class="attribute-value" style="color: blue;">&#8220;ifRoom&#8221;</span> </span> - <span style="color: black;"> <span class="attribute" style="color: red;">android:title</span>=<span class="attribute-value" style="color: blue;">&#8220;@string/action_share&#8221;</span> <span class="tag" style="font-weight: bold; color: #993300;">/></span> </span> - <span style="color: black;"> &#8230;&#8230; </span> - <span style="color: black;"> </span> - <span style="color: black;"><span class="tag" style="font-weight: bold; color: #993300;"></</span><span class="tag-name" style="font-weight: bold; color: #993300;">menu</span><span class="tag" style="font-weight: bold; color: #993300;">></span> </span> 注意,ShareActionProvider会自己处理它的显示和事件,但我们仍然要记得给它添加一个title,以防止它会在overflow当中出现。 ...

2014年7月30日 · 18 分钟 · 天边的星星