[转载]提升你网站水平的 jQuery 插件推荐

mikel阅读(938)

[转载]提升你网站水平的 jQuery 插件推荐 – 梦想天空 – 博客园.

JQuery是一个优秀JavaScript库,它简化了HTML文档遍历,事件处理,动画和Ajax交互。 JQuery的确改变了很多人写JavaScript的方式。如今,有很多现成的jQuery插件可供选择,帮助你在网站中加入惊人的功能和效果。看看这 些非常棒的jQuery插件吧,我相信你会发现一些很有用的东西。

lsotope

Isotope

Isotope 是一款精致的 jQuery插件,用于创建单纯用 CSS 无法实现的智能的、动态的布局,非常强大。

lettering

Lettering.js

Lettering 是一款用于实现激进的网页排版的 jQuery 插件,可以帮助你在网站中加入丰富多彩的文字效果。

jQuery.spritely

jQuery.spritely

jQuery.spritely 是一款简单、轻量的 jQuery 插件,用来创建创建动态角色和背景动画,效果非常酷,赶紧点击看示例吧。

Waypoints

Waypoints

Waypoints 可以帮助你很容易的实现滚动到某个元素的时候执行某项功能,根据用户拖动滚动条的位置来实现特定的布局模式。

HTML5 Grayscale Image Hover

HTML5 Grayscale Image Hover

借助 jQuery 和 HTML5 canvas ,图像可以很容易动态转变为灰度模式而不需要使用图像编辑软件。

jQuery Masonry

jQuery Masonry

Masonry 是一款 jQuery 布局插件,可以实现类似在墙上堆砌石头一样的布局效果。

Quicksand

Quicksand

Quicksand 是一款非常实用的 jQuery 插件,让你可以以圆滑流畅的方式实现项目的过滤和重新排序。

jDigiClock

jDigiClock

jDigiClock 是一款实现漂亮的时钟效果的 jQuery 插件,有很多选项可以用来定制时钟的行为和外观。

Aga

Aga

Aga 是一款简单、易用、全定制的手风琴效果插件,有水平和垂直两种方式。

Easy Image Zoom

Easy Image Zoom

Easy Image Zoom 是一款轻量的图像缩放插件,定制方便,非常适合用于产品图片浏览的场景。

Contained Sticky Scroll

Contained Sticky Scroll

这款插件可以帮你实现创建一个“粘”在窗口顶部的元素,但是不会移除它的父元素之外。

Supersized! jQuery plugin

Supersized! jQuery plugin

一款全屏幻灯片插件,支持从 flickr 读取图片。

gMap port for V3 Google Maps API

gMap port for V3 Google Maps API

gMap 是一款帮助你在网站中嵌入谷歌地图,使用非常灵活的轻量 jQuery 插件。

Quicktag

Quicktag

Quicktag 是一款标签插件,可以帮助你非常容易的实现插件新增和删除功能。

[转载]Android与服务器端数据交互(http协议整合struts2+android)

mikel阅读(1666)

[转载]Android与服务器端数据交互(http协议整合struts2+android) – 东子哥 – 博客园.

Android中有时候我们不需要用到本机的SQLite数据库提供数据,更多的时候是从网络上获取数据,那么Android怎么从服务器端获取数据呢?有很多种,归纳起来有

一:基于Http协议获取数据方法。二:基于SAOP协议获取数据方法,三:忘了——-

那么我们的这篇文章主要是将关于使用Http协议获取服务器端数据,这里我们采取的服务器端技术为java,框架为Struts2,或者可以有Servlet,又或者可直接从JSP页面中获取数据。

那么,接下来我们便开始这一路程:

首先:编写服务器端方法,我这里采用的MVC框架是Struts2,目的很单纯,就是为了以后做个完整的商业项目,技术配备为:Android+SSH。当然,篇幅有限,我这里就直接用Strtus2而已。

服务器端:新建WebProject ,选择Java ee 5.0.

为了给项目添加Struts2的支持,我们必须导入Struts2的一些类库,如下即可(有些jar包是不必的,但是我们后来扩展可能是要使用到的,就先弄进去):

1: xwork-core-2.2.1.1.jar

2: struts2-core-2.2.1.1.jar

3: commons-logging-1.0.4.jar

4: freemarker-2.3.16.jar

5: ognl-3.0.jar

6: javassist-3.7.ga.jar

7:commons-ileupload.jar

8:commons-io.jar

9:json-lib-2.1-jdk15.jar  处理JSON格式数据要使用到

10:struts2-json-plugin-2.2.1.1.jar    基于struts2的json插件

以上的jar包,需要放在WebRoot/WEB-INF/lib目录下

然后在web.xml文件中敲下:

<!--?xml version="1.0" encoding="UTF-8"?-->

<!-- 定义Struts2的核心控制器:FilterDispatcher -->

<!-- 定义核心Filter的名称 -->
struts2
<!-- 定义Filter的实现类 -->
org.apache.struts2.dispatcher.FilterDispatcher
struts2
/*
index.jsp

然后编写struts.xml文件,并放在WebRoot/WEB-INF/lib目录下:如下代码:

<!--?xml version="1.0" encoding="UTF-8"?-->

<!-- setting encoding,DynamicMethod,language
<constant name="struts.custom.i18n.resources" value="messageResource"></constant>
-->

<!-- add package here extends="struts-default"-->

<!--需要将struts-default改为json-default-->

<!-- setting action -->

<!--返回值类型设置为json,不设置返回页面-->

配置好后,我们再根据标签内容来编写action。方法为method对应的login,类名为loginAction,

注意:包继承为:json-default ,输出结果类型为json
如下:

public class loginAction extends ActionSupport implements
ServletRequestAware,ServletResponseAware {
/**
*
*/
private static final long serialVersionUID = 1L;

HttpServletRequest request;
HttpServletResponse response;

public void setServletRequest(HttpServletRequest request) {
this.request=request;
}

public void setServletResponse(HttpServletResponse response) {
this.response=response;
}

public void login(){
try {
//HttpServletRequest request =ServletActionContext.getRequest();
// HttpServletResponse response=ServletActionContext.getResponse();
this.response.setContentType("text/html;charset=utf-8");
this.response.setCharacterEncoding("UTF-8");
if(this.request.getParameter("username").equals("123456")){
this.response.getWriter().write("真的很奇怪,日本人!");
}else if(this.request.getParameter("username").equals("zhd")){
this.response.getWriter().write("没有错,我就是东子哥!");
}else{
this.response.getWriter().write("我就是东子哥!");
}

//将要返回的实体对象进行json处理
// JSONObject json=JSONObject.fromObject(this.getUsername());
//输出格式如:{"id":1, "username":"zhangsan", "pwd":"123"}
// System.out.println(json);

// this.response.getWriter().write(json.toString());
/**
JSONObject json=new JSONObject();
json.put("login", "login");
response.setContentType("text/html;charset=utf-8");
System.out.println(json);
byte[] jsonBytes = json.toString().getBytes("utf-8");
response.setContentLength(jsonBytes.length);
response.getOutputStream().write(jsonBytes);
**/
/**
JSONObject json=new JSONObject();
json.put("login", "login");
byte[] jsonBytes = json.toString().getBytes("utf-8");
response.setContentType("text/html;charset=utf-8");
response.setContentLength(jsonBytes.length);
response.getOutputStream().write(jsonBytes);
response.getOutputStream().flush();
response.getOutputStream().close();
**/

} catch (Exception e) {
e.printStackTrace();
}
// return null;
}
}

运行查看下:http://localhost:8080/PDAServer/login.action?username=123456 当然你可以输入其他参数的URL

运行成功。

客户端:

这里需要注意的是模拟器把自己当成了localhost,以及127.0.0.1了,因此如果基于本地的web项目测试的话,必须修改IP为:10.0.2.2


public class MainActivity extends Activity {
/** Called when the activity is first created. */
//模拟器自己把自己当成localhost了,服务器应该为10.0.2.2
private static String url="http://10.0.2.2:8080/PDAServer/login.action";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
getPDAServerData(url);
}

/**
* 请求服务
* @param url
*/
private void getPDAServerData(String url){
url+="?username=123456";
HttpClient client=new DefaultHttpClient();
HttpPost request;
try {
request = new HttpPost(new URI(url));
HttpResponse response=client.execute(request);
//判断请求是否成功
if(response.getStatusLine().getStatusCode()==200){
HttpEntity entity=response.getEntity();
if(entity!=null){
String out=EntityUtils.toString(entity);
new AlertDialog.Builder(this).setMessage(out).create().show();
}
}

}catch (URISyntaxException e) {
e.printStackTrace();
}
catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}

运行结果如下:

成功了吧:当然读者可以根据这个思路扩展下应用,比如:struts2+hibernate+spring+json。数据方面可以用json,也可以使用xml。android已经提供了JSON的API,struts2中也可以使用JSON插件.自己扩展吧。

[转载]众多Android 开源项目推荐

mikel阅读(1150)

[转载]众多Android 开源项目推荐,给力工作给力学习 – Terry_龙 – 博客园.

FBReaderJ
FBReaderJ用于Android平台的电子书阅读器,它支持多种电子书籍格式包括:oeb、ePub和fb2。此外还支持直接读取zip、tar和gzip等压缩文档。
bookinfo-rus.png

项目地址:http://www.fbreader.org/FBReaderJ/


Angle

Angle是一款专为Android平台设计的,适合快速开发的2D游戏引擎,基于OpenGL ES技术开发。该引擎全部用Java代码编写,并且可以根据自己的需要替换里面的实现。项目地址:http://code.google.com/p/angle/


android-shuffle

android-shuffle是一个GTD(Getting Things Done)个人备忘记事本。
3429748650_97b07951e5_o.png4299625001_01b6c3d1ef_o.png

Open GPS Tracker

GPSTracker 是一个能够使用Android地图记录你的驾车或旅行路线的项目,出发前打开软件选择开始记录,你所经过的路线就会实时显示在地图上,同时还会显示当前的 行驶速度。程序会按用户自己设置的标题自动存路线留做日后查看,也可以把路线分享给朋友。GPSTracker项目是一个Map方面的完整应用,包括两个 主要组成部分,第一部分是一个收集和存储GPS追踪数据的系统服务,第二部分是Map Activity控制跟踪数据并在地图上显示提供接口。GPSTracker项目用到了osmdroid项目的部分功能,其中OpenStreetMap 是一个可供自由编辑的世界地图,允许您查看,编辑或者使用世界各地的地理数据来帮助您。
media_track.png
satellite.png

Rokon

Rokon 是一个强大、可扩展、灵活的Android 2D游戏引擎,基于OpenGL ES技术开发,物理引擎为Box2D,因此能够实现一些较为复杂的物理效果,有人将它称为Cocos2d-iPhone引擎的Android版(因为业务 逻辑和编码风格上也确实很像)。
drop_block_ss1.png )。
drop_block_ss3.png项目地址:http://code.google.com/p/rokon/


LGame

LGame 是一款国人开发的Java游戏引擎,有Android及PC(J2SE)两个开发版本。其底 层绘图器LGrpaphics封装有J2SE以及J2ME提供的全部Graphics API(PC版采用Graphics2D封装,Android版采用Canvas模拟实现),所以能够将J2SE或J2ME开发经验直接套用其中,两版本 间主要代码能够相互移植。Android版内置有Admob接口,可以不必配置XML直接硬编码Admob广告信息。该引擎除了基本的音效、图形、物理、 精灵等常用组件以外,也内置有Ioc、xml、http等常用Java组件的封装,代价是jar体积较为庞大,PC版 已突破1.2MB,Android版有所简化也在500KB左右。此外,该引擎还内置有按照1:1实现的J2ME精灵类及相关组件,可以将绝大多数 J2ME游戏平移到Android或PC版中。
lgame_act.gif

OpenIntents

通 过”Intents”,Android给连接软件和动态替换组件提供了优秀的基础。Google定义了一批intents(如:打电话啊,联系人清单上选 择一个联系人,打开浏览器,电池更换的时候提供提示,等等,详细清单请看:available intents和intent class) 但是任何程序可以自由定义额外的intents和content-providers。我们可以很容易的联想到独立开发的程序(比如在这次的比赛中)极少 有可能会和新定义的intents和接口良好的一起工作。 我们这个项目的目标是收集很可能在多个项目中都有用的想法(而且很可能已经被其他独立程序员实现了),定义一批比较合理且扩展性比较好的一批 intents和接口,提供基础但稳定有效的实现,可以被其他Android程序所应用的,特别是其他参加比赛的程序员们。OpenIntents本身也 会参加这次的比赛。我们提供小的样品程序来演示OpenIntents的用法和特性。 因为我们专注于经常被使用到的那些intents,Google也很可能在不久的将来提供他们自己的标准intents(比如关于日历的。。。)当那个发 生的时候,我们会提供透明的接口来直接呼叫Google的实现方法,而你已有的程序可以直接使用Google的新功能而不需要改变任何东西。而且,由于你 的程序在设计初期就是已经支持intents的了,当Google的intents出来的时候,你可以很方便的直接他们的intents。还有可能的是 Google可能会借用一些OpenIntents开发的intents。无论如何,如果你的程序使用OpenIntents,在和其他使用 OpenIntents程序提供互相支持的同时,你会得到额外的附加值,从而全面增强用户体验。
openintents1.pngmainscreen2.png

android-bluetooth

非常官方Android Bluetooth API支持远程设备扫描、远程设备配对,服务发现(SDP)和客户端RFCOMM串行连接。项目地址:http://code.google.com/p/android-bluetooth/


Android apktool

Android apktool是一个用来处理APK文件的工具,可以对APK进行反编译生成程序的源代码和图片、XML配置、语言资源等文件,也可以添加新的功能到APK文件中。用该工具来汉化Android软件然后重新打包发布是相当简单的。

quake2android

quake2android是一个将《雷神之锤2》(Quake2)游戏移植到Android平台上的开源项目。支持谷歌Nexus One,三星Galaxy S,摩托罗拉Droid X等手机。
Quake2.jpg

AndEngine

AndEngine是一个开源的,基于OpenGL实现的Android 2D游戏引擎。这里提供一些基于AndEngine实现的示例。

android-opencv

android-opencv是一个将OpenCV移到Android手机平台的开源项目,该项目使用OpenCV最新的一个分枝并利用一个改良过的Android NDK进行构建。项目地址:http://code.google.com/p/android-opencv/


android-dalvik-vm-on-java

android- dalvik-vm-on-java该项目的目标是开发一个采用Java实现的Android Dalvik虚拟机。目的是为了学习Dalvik VM的思想和架构。当前支持Dalvik可执行文件格式(.dex),完整的Dalvik指令系统,J2ME CLDC API,多线程(包括同步阻塞,等待和通知)。项目地址:http://code.google.com/p/android-dalvik-vm-on-java/


Android PC_BCR

Android PC_BCR让你能够使用你的Android手机做为PC机的外围条形码扫描仪。扫描的条形码将通过WiFi网络连接传PC机中。这个开源项目由多个组件 组成,在手机设备上PC_BCR使用ZXing扫描仪器来扫描条形码,然后程序通过网络传到PC中,PC中有专门的PC_BCR程序接收。项目地址:http://code.google.com/p/android-pcbcr/


android-sms

android-sms能够将Android SMS短信备份到Gmail中的Android开源程序。项目地址:http://code.google.com/p/android-sms/


jPCT-AE

jPCT-AE是一个将jPCT移植至Android平台上3D图形引擎。
karga1.jpg项目地址:http://www.jpct.net/jpct-ae/


AndTweet

AndTweet是一个轻量级Twitter客户端,支持利用触摸和键盘进行快速操作。
3328108955_a142931f3f_o.png3236629233_b9396a131c.png

项目地址:http://code.google.com/p/andtweet/


android-smspopup

android-smspopup这个Android应用程序能够拦截收到的短消息并在一个弹出框中显示消息内容和联系人头像。此外还可以自定义LED颜色,振动模式,当第一次提醒显示没有看到时会重复提醒用户哪些信息没有看过。

项目地址:http://code.google.com/p/android-smspopup/


MyTracks

My Tracks能够记录你在户外活动的GPS轨迹并实时显示时间,速度,距离和海拔等信息。还可以将这些信息上传至Google Spreadsheets并在Google My Maps中显示。

项目地址:http://code.google.com/p/mytracks/


i-jetty

ijetty-screen2.jpg
i-jetty是一个将开源Web容器Jetty移植到Google Android手机平台上的开源项目。让你可以在手机上运行现有的Web应用。

项目地址:http://code.google.com/p/i-jetty/


webOdroid

webOdroid这个开源项目提供了一组完整的工具,能够根据现有网站创建一个Android应用程序。它提供的特性包括:

  • 一个功能齐全的RSS浏览器
  • 能够显示文章列表的ListView或GridView控件。
  • 提供易于定制的模板
  • 网站上执行远程搜索
  • 根据文章标题提供搜索建议
  • 异步下载和缓存RSS供稿和图片
  • 动态抽取和裁剪文章的图片
  • 通过一个专用的Joomla组件能够集成Joomla网站的搜索功能

项目地址:http://www.webodroid.com/


android-json-rpc

android-json-rpc是一个在android程序中使用的JSON-RPC客户端类库。它提供了一个简单的API来执行JSON-RPC服务调用。

项目地址:http://code.google.com/p/android-json-rpc/


BikeRoute

BikeRoute是一个Android应用程序提供基于GPS线路计划和定位功能。支持A到B路径规划,附近的单车停放处的位置,一步一步的指示,路线图,卫星导航等功能。
BikeRoute.jpgBikeRoute.jpg

Andorid PDF Viewer

Andorid PDF Viewer是一个运行在ANDROID手机上的PDF文件查看器。它是pdf-rendere:https://pdf-renderer.dev.java.net/的一个移植实现。

项目地址:http://andpdf.sourceforge.net/


Spring Android

Spring Android 是Spring框架的扩展,用于简化 Android 本地应用程序的开发。

项目地址:http://www.springsource.org/spring-android


AchartEngine

AChartEngine是一个针对Android程序开发的开源图表生成类库。支持以下几种图表类型:

  • 折线图
  • 区域图
  • 散点图
  • time chart
  • 柱状图
  • 饼状图
  • bubble chart
  • doughnut chart
  • range (high-low) bar chart

    项目地址:http://code.google.com/p/achartengine/


    Opencore

    Opencore是google联合packetvideo推出的多媒体开源框架,其中的h.264解码器在目前所有的开源h.264解码器中最好的,在win32和armv4上测试通过,性能好很多,大概提升20%!OpenCore的另外一个常用的称呼是PacketVideo,它是Android的多媒体核心。在防站的过程中,PacketVideo是一家 公司的 名称,而OpenCore是这套多媒体框架的软件层的名称。在Android的开发者中间,二者的含义基本相同。对比Android的其它程序 库,OpenCore的代码非常庞大,它是一个基于C++的实现,定义了全功能的操作系统移植层,各种基本的功能均被封装成类的形式,各层次之间的接口多 使用继承等方式。

    OpenCore是一个多媒体的框架,从宏观上来看,它主要包含了两大方面的内容:

    * PVPlayer:提供媒体播放器的功能,完成各种音频(Audio)、视频(Video)流的回放(Playback)功能
    * PVAuthor:提供媒体流记录的功能,完成各种音频(Audio)、视频(Video)流的以及静态图像捕获功能

    项目地址:http://www.opencore.net/


    Android Tools

    Android Tools是一个轻量级IDE用于创建、构建、安装和测试Android应用程序。可方便的通过点击访问Android的命令、目录和文件。它还提供一个内置的文本编辑器。Android Tools能够让学习和使用Android变得更加简便。
    AndroidToolsBasicTab.jpg

    项目地址:http://fieldbird.sourceforge.net/AndroidTools/


    android-binding

    android-binding这个开源项目提供了一个框架用于将android view widgets与数据模型相绑定。帮助您在android应用程序中实现MVC或MVVM模式。

    项目地址:http://code.google.com/p/android-binding/


    Robotium

    Robotium 是一个测试框架能够方便你为Android应用程序编写强大、健壮的自动黑盒测试用例。利用Robotium的支持,用例开发人员能够编写功能、系统和验 收测试方案Robotium支持Activities、Dialogs、Toasts、Menus和Context Menus。

    项目地址:http://code.google.com/p/robotium/


    QuiteSleep

    QuiteSleep是一个Android2.0+应用程序,可以设置免打扰时间段。这个时间段内,打进来的电话将会被阻止并通过SMS或E-Mail发送预定义好的信息给打电话者告知他你正忙或正在睡觉等。


    fanfoudroid

    安能饭否是一款开源的饭否Android客户端 。目前支持功能: 消息/私信收发,后台提醒,回复/转发/收藏,查看/关注用户,拍照/图片上传。即将支持功能: 关注管理,随便看看。
    5344789918_58acfe070b.jpg

    项目地址:http://code.google.com/p/fanfoudroid/


    Skylight1

    Skylight1是一个开源的Java手机应用程序开发框架和一些Android应用程序与示例。

    这个开源项目包含了以下子项目:

    • SkylightOpenGL – OpenGL wrapper DSL to the Java binding for OpenGL ES – JSR 239 for Android and Java ME
    • Skylight1 DI – 一个依赖注入框架
    • Skylight1 Mocks – 一组Android电话的模拟对象,包括回放。
    • Skylight1 Utils – 工具类如:FPS计数器,远程异常堆栈处理。
    • Skylight1 UI – 公共可定制UI类
    • Skylight1 XML – XML解析类。
    • Skylight1 Server – corresponding server side projects and utils
    • MarketConsoleScraper – Android Market console scraper contributed by Worksmart Labs
    • Skylight1 Demos – api and sample demos including:
      • Tanked, a 2D OpenGL demo
      • Barnstormer, a 3D OpenGL demo
      • Flick Test, a flick example showing borders of adjacent views
      • Skylight1 Wallpaper, a live wallpaper example featuring selectable backgrounds and a fingerprint.

    Current Android Applications:

    • Skylight1 TDC – a test data capture application for Android phones – available here for download
    • Skylight1 Game the initial app, a game for Android phones called “Balance the Beer” – available on the market.
    • NYC Events – an app that lists NYC Parks, Art and Music events. – available on the market
    • Toast – an app that helps you make a toast with your phone! – available on the market

    项目地址:http://code.google.com/p/skylight1/


    Android团队提供的示例项目
    如果不是从学习Android SDK中提供的那些样例代码开始,可能没有更好的方法来掌握在Android这个框架上开发。由Android的核心开发团队提供了15个优秀的示例项 目,包含了游戏、图像处理、时间显示、开始菜单快捷方式等。
    地址:http://code.google.com/p/apps-for-android/


    Remote Droid
    RemoteDroid是一个Android应用,能够让用户使用自己的无线网络使用无线键盘、触摸屏操作手机。这个项目为开发者提供了如网络连接、触 摸屏手指运动等很好的样例。
    地址:http://code.google.com/p/remotedroid/


    TorProxy和Shadow
    TorProxy应用实现了Android手机无线电电传通讯(TOR),和Shadow应用一起使用,可以使用手机匿名上网。从该项目源代码中,可以 掌握socket连接、管理cookie等方法。
    地址:http://www.cl.cam.ac.uk/research/dtg/code/svn/android-tor/


    Android SMSPopup
    SMSPopup可以截获短信内容显示在一个泡泡形状的窗口中。从这个项目中可以掌握到如何使用内置的短信SMS接口。
    地址:http://code.google.com/p/android-smspopup/


    Standup Timer
    Standup Timer应用用于控制站立会议时间,类似秒表倒计时,可以提醒每个人的讲话时间已到,从而保证每个与会者使用时间一样。从该项目的代码中,可以学会如何 使用时间函数。另外,这个项目的代码是采用视图view、模型model严格分离的设计思路。
    地址:http://github.com/jwood/standup-timer


    Foursquare
    是 Foursquare.com的一个客户端应用,该应用主要分为两个模块:API(com.joelapenna.foursquare)和界面前端 (com.joelapenna.foursquared)两部分。从该项目代码中,可以学会如何同步、多线程、HTTP连接等技术。
    地址:http://code.google.com/p/foursquared/


    Pedometer
    Pedometer应用用于记录你每天走路步[]数的。尽管记录不一定精准,但是从这个项目中,可以学习几个不同的技术:加速器交互、语音更新、后台运行服 务等。
    地址:http://code.google.com/p/pedometer/


    OpenSudoku-android
    OpenSudoku是一个简单的九宫格数独游戏。从代码中可以学习到如何在视图中显示表格数据,以及如何和一个网站交互等技术。
    地址:http://code.google.com/p/opensudoku-android


    ConnectBot
    ConnectBot是Android平台的一个客户端安全壳应用。从该项目代码中,可以学习到很多Android安全方面的内容,这些是你在开发应用 时经常需要考虑的安全问题。
    地址:http://code.google.com/p/connectbot/


    WordPress的Android应用
    当然在最后不能不提Wordpress的Android应用了,这是Wordpress官方开发团队提供的一个项目。从代码中可以学习到XMLRPC调 用(当然还有更多的优秀内容)。
    地址:http://android.svn.wordpress.org/trunk/


    Jamendo

    Jamendo在线音乐播放器是一款android平台在开源的在线音乐播放,该播放器的主要特色如下:

    1. 界面美观,在jamendo播放器中精美的布局的随处可见,大量使用自定义控件和Adapter进行布局,这点可供初学者好好探讨研究

    2. 构架清晰

    3. 在代码中大量使用全局缓冲机制,如全局Application缓冲,图片缓冲等等。。

    4. 数据传递使用JSON方式,网络传输(Apache Http 4.0)。。。

    5. 全局的MediaService,并且伴有NotifyManager等进行通知

    部分截图如下:

    主界面:

    MusicSearch界面

    Music 播放界面,从图中可以看出,播放界面做的很美观

    播放界面下方用到了SlidingDrawer

    RadioSearch 界面

    Jamendo 官方网站:http://www.jamendo.com/en/

    分享的内容依次是:

    1.分析Music搜索实现,主要是网络和JSON传输

    2.分析全局Application缓存实现方法

    3.分析Download模块

    4.分析Adapter使用

    5.分析全局Service构成

    6.分析自定义Widet,代码中大量使用自定义布局,对新手学习布局很有帮助

    7.分析整体结构

    学习Android 或者做Android 项目的可以参考这些。

    [原创]ASP.NET MVC对Img标签空src的解析重复定向问题

    mikel阅读(985)

    偶然一次单步调试当前网站项目,发现一个问题,页面总是刷新两次,于是首先怀疑是不是JavaScript有刷新重定向的代码,结果没有,于是抽丝剥茧一步步的注释掉可以的标签和代码,结果锁定在如下代码:

    <div class="pic"><img src="&lt;%=LifePic.url%&gt;" alt="&lt;%=LifePic.InfoTitle%&gt;" width="94" height="94" /></div>
    

    于是,查看ASP.NET MVC的生成页面的源码,发现img标签的src的值为空“”,则重定向一次action,导致两次解析action,结果给定一个src的值,代码改为:

    <div class="pic"><img src="../../Content/home/images/logo.jpg" alt="&lt;%=LifePic.InfoTitle%&gt;" width="94" height="94" /></div>
    

    不再重定向一次controller的action,问题原因可能是ViewEngine解析页面的时候默认src=“”的重新解析为/

    [转载]Android学习系列(4)--App自适应draw9patch不失真背景

    mikel阅读(895)

    [转载]Android学习系列(4)–App自适应draw9patch不失真背景 – 谦虚的天下 – 博客园.

    做人要大度,海纳百川,做事要圆滑,左右逢源,这让我想到了编程也是如此,代码要扩展,界面也要考虑自适应。
    这篇文章是Android开发人员的必备知识,是我特别为大家整理和总结的,不求完美,但是有用。

    1.背景自适应且不失真问题的存在
    制作自适应背景图片是UI开发的一个广泛问题,也是界面设计师渴望解决的问题,我相信我们彼此都深有体会。
    比如,列表的背景图一定,但是列表的高度随着列表数据项会发生变化;标题栏的背景,无论横屏还是竖屏,高分辨率还是低分辨率,都能自动填充满,而且不失真等等背景问题。
    根据以往的经验,我们一般采用先切图后拼凑的做法,这种做法本来我想在这里和大家介绍一下,其实有的时候还是很有用的,但是说起来会比较麻烦,就不说这个非重点了,略去,如果大家真的要介绍,在回复中说明,我再考虑一下。
    Android针对这种情况,专门制作了一种.9.PNG格式来解决这个问题。

    2.9.PNG格式。
    我不想在这里过多的讨论PNG格式的定义问题。但是.9.PNG确实是标准的PNG格式,只是在最外面一圈额外增加1px的边框,这个1px的边框就是 用来定义图片中可扩展的和静态不变的区域。特别说明,left和top边框中交叉部分是可拉伸部分,未选中部分是静态区域部分。right和bottom 边框中交叉部分则是内容部分(变相的相当于定义看一个内边距,神似padding功能,后面我会单独介绍一下),这个参数是可选的, 如下图。
    在Android中以9.PNG格式的图片未背景,则能够自定义拉伸而不失真,比如系统的Button就是一个典型的例子。
    其实呢,无论是left和top,还是right和bottom都是把图片分成9块 (边角四块是不能缩放的,其他的四块则是允许缩放的),所以叫做9.PNG。

    3. 使用Draw9Patch.jar制作9.PNG图片之定义拉伸区域。
    前面已经了解到9.PNG格式的工作方式,下面我们使用谷歌提供的Draw9Patch(运行android-sdk-windows\tools目录下的Draw9Patch.bat)来制作.9.PNG图片。
    第一步:准备要拉伸的图片。

    非常小的一张图片,我希望以此为背景,中间部分填充文章内容。
    第二步:制作.9.PNG图片
    打开Draw9Patch,把图片拖进去,如下:

    默认的拉伸是整体拉伸,其实边框部分我们并不想拉伸,好,我们自己来定义拉伸区域,如下图:

    然后点击File,导出为content.9.png。
    第三步:在layout文件中使用制作的 .9.PNG图片.
    新建工程Draw9Patch,默认主Activity为Draw9PatchActivity.java:

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    }
    

    我们把content.9.png文件拷贝到/res/drawable文件夹下,打开/res/layout目录下的main.xml,申明如下:

    <!--?xml version="1.0" encoding="utf-8"?-->
    

    如图,

    我们修改text,

    <!--?xml version="1.0" encoding="utf-8"?-->
    

    如图,

    可以看出,边框非常的清晰。下图是未使用.9.PNG的对比图,而且也不是我们要的效果:

    到这里为止,我们已经基本会制作.9.PNG图片了。为了知识体系的全面性和深入性,我们继续。

    4.使用Draw9Patch.jar制作9.PNG图片之定义内容区域。
    是不是觉得文字和边距挨的太近,好,我们使用right和bottom边的线来定义内容区域,来达到增大内边距的目的。

    我们定义了一个很小的内容区域,其他的地方则自动充当边框,从而使内边距显的很大,如下图,

    在这里,我要特别说明,一开始为了增大内边距,很容易惯性思维,在<TextView>中申明 android:padding=”10dip” 之类的,我在这里劝告朋友们不要这么做,一是你将无法预知你的显示,二是这比较混淆,因为设置内容区域就是确定padding,所以我在前面部分说他们是 神似。我个人认为通过内容区域设定padding比在布局xml中定义padding更优雅,更简洁!
    关于Draw9Patch工具的其他使用说明,我在次不再累述,因为要说的话太多,为了节省篇幅,请参考官方文档。

    5.制作.9.PNG的高级技巧。
    对于初学Draw9Patch的人来说,这可以算是高级技巧,那就是:拉伸区域,可以不是连续的,可以不止一块,而且是和自定义的边框线的长度成正比。
    直接上图说明:

    6.SDK中如何处理9.PNG图片。
    SDK专门针对9.PNG做了定义和处理,这里我们只是做个简单的流程分析,Bitmap在读取图像流数据的时候,会把判断图片的 NinePatchChunk(9Patch数据块),如果NinePatchChunk不为空,则是 NinePatchDrawable,NinePatchDrawable则又会交给NinePatch处理:

    setNinePatchState(new NinePatchState(
    new NinePatch(bitmap, bitmap.getNinePatchChunk(), "XML 9-patch"),
    padding, dither), r);
    

    NinePatch检验成功则调用本地方法,绘制出最终的图片:

    nativeDraw(canvas.mNativeCanvas, location,
    mBitmap.ni(), mChunk, paint != null ? paint.mNativePaint : 0,
    canvas.mDensity, mBitmap.mDensity);
    

    7.android系统中大量应用了9.PNG图片。
    通过解压随便一个rom,找到里面的framework_res.apk,里面有大量的9.PNG格式文件,被广泛的应用起来,比如常见的有:
    按钮:
    解锁:
    下拉框:
    标题栏:
    Toast:
    还有搜索,键盘,放大缩小控件,时间加减等等,我就不一一列举。

    8.最后送上一些图例,以飨读者,以做后鉴:

    赏图1 本人之作

    赏图2 下拉按钮

    赏图3 文章头部背景

    赏图4 系统头部背景

    赏图5 再来一个头部背景
    谢谢大家的支持。

    [转载]iPhone中预览文档的三种方式

    mikel阅读(894)

    [转载]iPhone中预览文档的三种方式 – 用自己的语言写个Hello World – 博客园.

    在iPhone中可以很方便的预览文档文件,如:pdf、word等等,这篇文章将以PDF为例。介绍三种预览PDF的方式,又分别从本地pdf文档和网络上的pdf文档进行对比。

    预览本地PDF文档:

    1、使用UIWebView控件

    UIWebView是iPhone开发中最常用的控件之一,类似.net中的webBrowser控件。使用它预览PDF文件相当的方便和简单。

    在UIWebView中预览PDF文档的关键代码如下:

    效果:

    2、使用CLPreviewController

    CLPreviewController是比较新的一个功能,它能快速预览文档,可以一边加载一边预览,也就是说不需要将文档全部加载到内存中。

    使用CLPreviewController预览pdf文件,需要实现一个委托:QLPreviewControllerDataSource。关键代码如下:

    其中prevoewController返回预览文件的地址。

    这种方式不仅快,而且还提供了一个在iphone中打印文档的功能,如下图。

    3、绘制pdf文档

    apple有个官方的例子是绘制pdf的。这种方式可以很方便的控制pdf的展现细节,但是效率不高。

    预览网络上的PDF文档:

    1、使用UIWebView去预览网络上的PDF文档,先是将要预览的文档下载iPhone内存中,然后预览,对很大的pdf文档,效率不高,用户体验也不好。

    2、对于使用prevoewController,因为它是分步加载的,不会一次性加载所有的pdf文档,用户体验还不错,但是在4.0中多出了一个打印按钮,一点击这个打印按钮,程序就挂了,真是杯具。

    3、绘制的方式也是需要一次性加载到内存,绘制效率不高,对于大文档,不应当使用这种方式。

    网络大文档预览的解决方案:对于网络上的pdf文档,比如:电子书(一些电子书是比较大的),建议先下载到本地,然后使用第二种方式去预览。

    总结:本文介绍了三种预览pdf文档的方式,对于非pdf文档也是类似。由于本人接触iPhone开发不长,写的不对的地方,欢迎大家指正。

    本文代码:http://files.cnblogs.com/zhuqil/PDFView.zip

    [转载]分享30个应用HTML5的网站案例

    mikel阅读(1110)

    [转载]分享30个应用HTML5的网站案例 – 梦想天空 – 博客园.

    在过去的几年,设计师们已开始关注和使用 HTML5 了,如今 HTML5 得到了更加广泛的应用。虽然说 HTML5 取代 Flash 还为时尚早,但 HTML5 将逐渐成为 Web 舞台的主角。今天,本文向大家推荐30个应用 HTML5 的网站案例,让大家感受一下 HTML5 的魅力。

    NakshArt

    html502

    Mat Tomaszewski

    html503

    welcomebrand

    html504

    layer 51

    html505

    Stockholm Hairdresser

    html506

    Furnace

    html507

    Virtuti Design

    html508

    Lifefroots

    html509

    Float Left

    html510

    Daniel Scholten

    html511

    AX Visual Design Studio

    html512

    robedwards.org

    html513

    Festival Mundo

    html514

    The Squad

    html515

    S5 Style

    html516

    Bifter SVG Comic

    html517

    Fidiz

    html518

    Push

    html519

    re:play

    html520

    Blink Lab

    html521

    Joe Critchley

    html522

    Lexways

    html523

    ar-com.co.uk

    html524

    Kiran Owal

    html501

    Hallzzz

    html525

    Birrificio Irpino

    html526

    Empire State Recordings

    html527

    McKinney

    html528

    weluse

    html529

    Myke Preusss

    html530

    收集来源:

    HTML5 Gallery
    HTML5 Websites

    (编译来源:梦想天空 原文来自:30 Examples of Websites Using HTML5

    [原创]ASP.NET MVC 的RedirectToAction的用法

    mikel阅读(1440)

    最近项目需要涉及到跳转保存查询条件的问题,于是发现利用简单RedirectToAction(string ActionName) 无法传递参数给重定向的Action,于是查看了ASP.NET MVC的源码(项目用的 ASP.NET MVC Preview3)发现Controller中RedirectToAction方法声明源码如下:

    protected internal RedirectToRouteResult RedirectToAction(string actionName) {
    return RedirectToAction(actionName, (RouteValueDictionary)null);
    }
    
    protected internal RedirectToRouteResult RedirectToAction(string actionName, object values) {
    return RedirectToAction(actionName, new RouteValueDictionary(values));
    }
    
    protected internal RedirectToRouteResult RedirectToAction(string actionName, RouteValueDictionary values) {
    return RedirectToAction(actionName, null /* controllerName */, values);
    }
    

    项目中也使用了RedirectToAction的方法传递值的,一般都是这么使用的:

    return RedirectToAction("Index",new {id=1;username="mikel"});
    

    于是想知道上面的方法调用的是 RedirectToAction(string actionName, object values) 还是 RedirectToAction(string actionName, RouteValueDictionary values),设置断点单步调试了下,发现调用的是 RedirectToAction(string actionName, object values),而且values中是以key=value的格式存储的数据并调用RedirectToAction(string actionName, RouteValueDictionary values)执行,那么看来最终执行跳转的是RedirectToAction(actionName, null /* controllerName */, values);这个方法:

            protected internal virtual RedirectToRouteResult RedirectToAction(string actionName, string controllerName, RouteValueDictionary values) {
                if (String.IsNullOrEmpty(actionName)) {
                    throw new ArgumentException(MvcResources.Common_NullOrEmpty, "actionName");
                }
    
                RouteValueDictionary newDict = (values != null) ? new RouteValueDictionary(values) : new RouteValueDictionary();
                newDict["action"] = actionName;
                if (!String.IsNullOrEmpty(controllerName)) {
                    newDict["controller"] = controllerName;
                }
                return new RedirectToRouteResult(newDict);
            }
    

    于是想到既然传递的是new{key=value}的对象,那就是个类的实例啊,正好项目中用的都是实体类传递条件的,那直接将实体类的对象传递给方法进行重定向就行了,具体代码如下:

        public class Test
        {
            public string id{get;set;}
            public string condition{get;set;}
    
    
        }
    
        public class HomeController : Controller
        {
            [CachedFilter]
            public ActionResult Index(string id)
            {
                ViewData["Title"] = "Home Page";
                ViewData["Message"] = "Welcome to ASP.NET MVC!";
    
                return View();
            }
    
            public ActionResult About()
            {
                ViewData["Title"] = "About Page";
                Test t = new Test();
                t.id = "none";
                t.condition = "n";
    
                return RedirectToAction("Index", t);
            }
        }
    

    这样就是实现了条件值的重定向传递,看来很多事需要认真阅读源码才能知道

    [转载]Android 固件管理器桌面版 – 一键刷机

    mikel阅读(775)

    [转载]Android 固件管理器桌面版 – 一键刷机 – 小众软件.

    Android 固件管理器 推荐给各位刷机控,一款用 AHK 写出的快捷刷机工具。@Appinn

    Android 固件管理器桌面版   一键刷机[图] | 小众软件

    江湖传言:爱疯用户三大爱好:游戏拍照发微博。安卓用户的三大爱好:刷机重起换电池。

    不管传言是真是假,向我这样保留 Android 原生系统不 root 不刷机的用户还是有滴。当然手机是自己的,怎么玩都行。这款 Android 固件管理器桌面版 给了爱刷机测试各种 ROM 的同学很方便的选择。

    首先提示:刷机有风险,行动需谨慎!

    适用的机型及要求:

    理论上支持所有支持 ClockWorkMod 的 Recovery 的机型。据了解绝大多数 HTC 原生 Android 机型都能支持。
    手机中已刷入 ClockWorkMod 的 Recovery (可直接用本工具操作)
    手机中需要安装有 SD/TF 存储卡,剩余容量必须大于要刷入的新 ROM 文件的大小(ROM 会先被传输到存储卡里)。
    需要打开手机中的 “USB 调试” 选项,连接电脑时请选择”仅充电”模式。

    PC 端要求:

    Windows XP/Vista/7 32位(未测试 64 位系统)。
    已安装 ADB 驱动,或其他带有 ADB 驱动的软件,比比如 MyHTC,豌豆荚等,但为保障操作顺利,您最好事先关闭这些软件,待完成后再开启。

    Android 固件管理器桌面版所具备的功能:

    1. 一键刷入新 ROM
    2. 一键刷入 Radio 和 Recovery
    3. 一键备份/还原系统,以及管理备份项目(包括删除或重命名)
    4. 一键刷入第一屏画面
    5. 一键查看设备信息
    6. 一键进入Recovery,Fastboot模式,关机,重启 等常用的快捷操作
    7. Android固件管理器桌面版自身具备自动检查更新的功能

    小众再次提醒:刷机有风险,注意先备份,请先学习在刷机。

    具体见介绍页面:http://zrizhi.com/android-rom-manager-desktop-released.html

    [转载]Developing Android Applications with Adobe AIR (download)

    mikel阅读(1025)

    [转载]Developing Android Applications with Adobe AIR (download)-RIABook.cn.

    Download Developing Android Applications with Adobe AIR

    简介 Book Description:

    关于作者 About the Author
    Veronique Brossier is Senior Flash Engineer at MTVNetworks and adjunct professor at ITP/New York University. She has worked on applications for the world of art and entertainment, including The New York Visitor Center and the 9/11 Memorial site for Local Projects, NickLab for R/Greenberg Associates, Cartoon Network Online, the Hall of Biodiversity at the American Museum of National History, and many more.

    下载:
    http download :

    from fileserve.com
    from 115.com password: www.zaneblog.info