这是做app用什么软件app做的

这个图片是用什么app做的。主要是留白。各种各样的留白。&&
君子空情51965
你看这个是截图吧然后导入Photoshop touch,找到画布大小更改高度并保存为PNG格式,就会两边留白下面是保存后的效果图如果你只需要下边留白,那么可以把图像进行移动这下子就留的可以的了吧,这款APP叫Photoshop touch
为您推荐:
扫描下载二维码当我们完成一系列的APP设计草图或者UI效果图的时候,如果想要快速制作一个比较合理的APP展示demo是移动产品经理或者说移动APP设计师必要的一项工作。
当我们提到这个在手机上快速制作APP Demo的交互神器肯定会想到POP。
因为POP最简单粗暴易上手,顾名思义就是做纸原型。
分三个步骤,第一步在纸上画出线框图,第二步拍下这些图,第三步就是添加跳转链接,就是这么简单!
还有之前25学堂推荐的:,值得收藏。
然而今天25学堂向大家推荐的这款手机上快速制作APP Demo的交互神器是App.eal
app.eal(中文名:爱备)是一个有意思的应用,也是手机做Demo来说功能非常强大的一款,也是为数不多有中文版本的一个App。比起POP来说,支持转场效果、支持导航栏与标签栏等都是我们喜闻乐见的功能。
支持设置众多的交互细节能够帮助制作出更逼真的Demo。
app.eal是一款基于图片的原型工具,能够实现无需代码便可快速建立原型。助你快速实现自己的设计构思,帮助你提供更为精良的原型设计方案。
该款手机上快速制作APP Demo的交互神器-App.eal酷站网址:
下面是25学堂精心为大家准备的一些制作移动APP demo的流程和步骤:
第一步、 准备图片素材
在高保真原型制作中,使用的就是视觉设计后的界面图片素材。所以要制作动态的Demo的话,需要Demo中涉及到的所有功能的视觉元素的图片:界面整体效果图、各控件切图、各层次的界面内容的文本或图片等等。这时候需要我们自己在psd的源文件里面切出所有的图片素材,这个步骤就是炒菜中的切菜备料。这里介绍一个很好用便捷的免费Photoshop切图插件Cut&Slice me(目前仅支持CS6),Photoshop CC也有类似的功能。
第二步、 添加跳转关系
根据展示的思路(Mindjet)或者脚本(Storyboard)的产出物,我们已经清晰的知道Demo的展示逻辑和任务流程,即已经定义好了用户/观众的交互路径,这时候只需要将页面元素拼装成Demo中会出现的页面,在这些用来交互的控件上面添加跳转关系就可以了。
第三步、 调整出更细致的效果
其实做到上面2的部分,你的Demo已经相对完整并可供把玩了,但是总有些人是完美主义者,还想再进一步怎么办?这时你也许就需要更多的一些时间精力和爱来学新的东西——Xcode的Storyboard,Quartz Composer,Flash或是After Effects等,当然这需要你具备对细节极致追求的心态、懂一些基础英文、数学和编程技巧。
有哪些更细致的效果呢:支持除点击之外的手势操作(长按、轻抚、多指操作等);界面切换时有更逼真的动态效果和视觉引导;支持声音、视频等多媒体的播放。
第四步、 应用移动展示效果
Demo的最终目的是秀出来,不知道你是否发现传统PC软件(Axure和网页三剑客Flash、Fireworks和Dreamware)制作的Demo在移动设备上的展示总是很奇怪或者蹩脚。原因很好理解,这些软件都是基于网页产品的原型Demo工具,生成的可交互文件格式为HTML或者是swf,很显然与App在手机上的运行机制和所受限制完全不同。
本文标题:
本文地址:/appdesign/7382.html
除非注明,本站文章均为原创或编译,转载请注明出处和原文链接,转载同时请务必保留原网站网址。
移动APP设计入门课程
为你推荐的相关文章
Copyright@
All Rights Reserved ICP备案号:桂ICP备号-2本站声明所有资源均是网上搜集或网友上传提供,如有侵犯您的版权,请及时联系我们(),我们将尽快处理。1. App的基本概念和要素
简单来说,app就是在智能手机上运行的计算机软件程序。它一般先由程序员开发出来,再与设计师创作的图形元素相组合才能得以完成。制作iPhone app的工具主要是一款名为Xcode的软件。开发工具主要有Swift 和Objective-C。许多app都有允许在云端储存信息及与其他用户联接的后台程序(back-end )。
借助Xcode可以制作原生的iPhone app,但Xcode只能在Mac OS X操作系统下运行。它包含可以制作图形元素的界面创建器(Interface Builder)。另外它只是一款构建工具,用它无法实现具体的app功能,只能为用户图形界面(GUI)建立一个基础。
Xcode的功能十分丰富,例如,自动排版(Auto Layout)能让app界面在不同解析度的屏幕上都正常显示,iPhone模拟器(iPhone Simulator)可以让你不用iPhone也能对app进行测试。
要在App Store中发布制作好的app,你需要从苹果官方获得一个开发者账号。这个账号需要花99美元购买,可以用一年。苹果还有一系列的app管理维护工具,叫做 iTunes Connect。
2. App的制作流程
几乎任何一款app都要遵循以下的制作步骤:
1. 设计。做出app的模型文件(mockup)并将所有元素都置于屏幕上。
2. 开发。这一步包括编写代码,将“如果-下一步”类型的操作与界面组合起来。
3. 测试。将beta版本的app发送给测试者,并根据他们的反馈修正错误。
4. 发布。接受官方的评估并在App Store中正式推出。
即便是以后要在app中增加新功能,基本上也是按照设计,编程,测试,发布的流程来做的。
3. On Swift and Objective-C
目前,iPhone app都是以Swift 或Objective-C写成的。Swift是苹果官方开发的一种编程语言,于2014年6月首次发布,正式的1.0版则于2014年9月份发布。它是一种很新的编程语言,目前,App Store中已经有不少完全使用Swift编程的App.
Swift受到了初级及资深程序员的一致欢迎。Swift语言的一个显著优势就是它可以与Objective-C语言互换。这对于程序员而言非常便利,因为这样一来,他们就省去了为了与新语言兼容而改写整个代码库的麻烦。
Swift 与Objective-C哪个更好?
Objective-C的句法较为特殊,因此掌握起来相对困难一点。对于初级编程者来说,毫无疑问是Swift更好一点。与Objective-C相比,Swift的入门门槛更低,因此在开发过程中也能节省一些经费。
尽管如此,Objective-C在全球范围内依然是许多软件公司采用的标准语言,这种情况在未来一段时间内还会继续存在。
4.中间件:一次完成,多处应用
中间件(Middleware),例如Cordova 或PhoneGap,也很受开发者的欢迎。因为借助中间件,开发者只需一次写完代码,就可以它们同时应于用安卓或iOS平台上。
安卓平台上的app都是以Java写成的,与iOS app互不兼容。如果你想在这两个平台上都发布app但又不愿重写一遍代码,那么中间件可以为你节约不少时间。
很多中间件(或跨平台工具)都是基于网络技术而构建的,如HTML5, CSS 和JavaScript等。
目前此类工具中最受欢迎的是Phone Gap。Phone Gap自带app创建工具,并可把app导出到Xcode中运行和修改,这样的得到的app是“混合型”的---意味着它的元素与HTML5组合在一起。
PhoneGap目前推出了PhoneGap Build新工具,从而以云端解决方案替代了原有的Xcode编写器。PhoneGap是一款免费且开源的工具。
与PhoneGap类似的工具还有:
Phone Gap比这些工具更有优势的地方在于,它不仅支持不同的系统(iOS, Android, Windows Phone, BlackBerry OS, Ubuntu and Firefox OS),还支持硬件(加速器, 相机等等。)
中间件的美中不足之处
但中间件存在两个主要缺憾之处:
由于此类工具多数是基于网络技术,因此无法支持硬件加速。在原生app中也无法支持动画,切换特效和高解析度的图片,所以,它无用应用于制作游戏或像素密集型app。
此外,使用中间件也需要开发者很熟悉编程器和开发工具,这无疑给初级开发者造成了很大困难。
5.设计:App如何工作
编程只是制做app过程中的一部分。界面设计在app的制作中也占很大的比重。如果你的条件允许的话,不妨雇佣一个专门的界面设计师。你可以在Elance 或 oDesk这类外包网站上找到很多这类人才。
虽然如此说,但如果你刚刚开始学习制作app的话,也可以使用网上现有的模板。这些模板也许不能让你的app看起来异常漂亮,但至少不会坏到哪里去。对于初学者而言,这是一个可以节约金钱和时间的好办法。
工具与资源
苹果的人机界面指南(Human Interface Guidelines)已经就app中的基本元素及如何使用这些元素给出了很好的建议。
图标:建议使用图标文件包,如Glyphish(收费)。这类文件包通常包含上千个图标文件,且专门针对iPhone app做了优化。包括社交媒体图标及与app操作相关的一系列图标。
模型:强烈推荐使用Balsamiq Mockups(收费,但有免费试用版)。App 模型相当于一个草稿,它显示了你的app将如何工作,又有那些功能。永远不要只顾埋头编程,事先在模型中测试一下UI和排版能避免很多错误。
如果你制作了一个模型,但对于app的真实界面还是不放心的话,不妨试试Teehan+Lax团队开发的design PSDs(免费)。这些素材中包含了几乎所有iOS系统下的GUI元素,而且是矢量文件。它们一定能让你的模型变得更为完美。
6. 如何将App与互联网连接?
如果你的app需要与网络连接的话,可以使用伺服器端语言如NodeJS, Ruby 或PHP创建一个自定义后台,这将为你节约很多时间和精力。简便一点的方法是使用一个“服务器即平台”(Platform-as-a-Service)工具,比如说Parse。Parse是一种旨在为app提供线上或线下存储服务的解决方案。
有了Parse之类的解决方案,就完全不需要再创建自定义的后台了。Parse最基本的用户是免费的,高级用户收费为100美元/月。
7. 从Beta 到Live
你制作的app在正式发布之前,需要先上传到iTunes Connect中。你需要提供app的基本信息,如描述,分类和app的形象图标。
接下来会进入评估阶段。这时苹果官方为保证进入App Store 的app的质量而采取的一项措施。整个评估大概需要2周左右的时间。
初次创建app时的10个常见问题
1. 制作一个app的成本有多高?
根据公司的规模而有所不同。外包设计师制作一个简单的app一般收费在3000美元左右。而像Tinder, Pinterest, Facebook这样的公司可能会为一款App花费数百万美元。就像那句老话说的那样:一分价钱一分货。
2. 我在为app编程时遇到了困难。该向谁求助呢?
初级及中级程序员遇到的问题,通常能在StackOverflow之类的技术论坛找到答案。而对于非技术性的问题,例如价格或UX/UI等方面的问题,Quora是个不错的地方。
3.我有一个不错的app创意,该如何开始制作?
如果你真的想制作一款商业性的app,首先应该做的事就是了解一下市场及用户需求。大多数成功的app之所以成功,是因为它能解决用户最急迫的需求,所以用户才心甘情愿出钱购买它。一定要在实际了解用户的情况之后,再去着手进行开发阶段的工作。
4.为了制作app,我需要专门买一部iPhone吗?
不需要,但我建议你买一部。虽然Xcode有自带的iPhone模拟器,但从电脑屏幕上看到的效果跟你握在手里的效果毕竟不同。所以我建议你买一部真实的设备。
5.我数学不好,这对编程有影响吗?
有,但也可以说没有。很多编程的原则都与数学密切相关,但在实际制作app时几乎用不到这些数学知识。当你的编程技术越来越熟练时,可能会发现自己不知不觉地已经学会了不少数学技巧。
6.我在软件公司上班。我是应该把关于app的好点子告诉公司呢,还是自行开发?
这要看公司的性质和你在公司的职位。如果你的公司与app有密切关系的话,不妨把你的计划跟主管谈谈。如果你觉得自己的创意得不到重视,也可以自行开发。但要注意法律规定。因为你在受雇于公司时开发的产品也有可能被认定为版权归公司所有。
7.我想开发的app在App Store中已经有了,我该怎么办?
“已经有类似的App了”并不能代表现存的app就很优秀。你依然可以开发出更优秀的app与之竞争。同样的,如果你想开发的app在App Store中不存在,这并不一定意味着是个填补空缺的好机会。因为也可能以前有人开发过,但因为不受欢迎而被撤下了。
8. iPhone为何有时又被称为 iOS?
iMac开启了苹果产品以i打头的先河.。从那之后便产生了iTunes, iPod, iPad 和iPhone等产品。因为把运行于iPhone上的操作系统(OS)称为iOS就丝毫不奇怪了。
9. 如何让我的iPhone app在市场上获得成功?
这个问题需要写好多本书才能说得清。但所有已经取得成功的App都有个特点,就是它们一次只解决一个问题,并且解决得好到使客户愿意花钱买它。
你可以先找到一个要解决的问题,然后去寻找急需解决方案的客户。也可以先做客户调查,弄清楚他们急需解决的问题。除此之外,要注意多与潜在客户保持联系和沟通。
10.学习编程应该注意什么?
不要半途而废。半途而废是学习编程最低效的方式。学习一项新技术的确要投入许多时间和精力。中途放弃永远学不会任何东西。
另外,也不要轻信书上关于编程方法的“捷径”。编程需要亲自去写代码,并从错误中一点点地学习。
看到你自己制作的app出现在App Store中是件振奋人心的事。现在,对于制作app的方式和流程你已经有了大致的了解。接下来,你可以找一本教程,先从学习Swift开始,进而尝试用Balsamiq做出漂亮的界面,之后申请一个苹果开发者账号。用不了多久,你就会看到自己亲手制作的App在App Store中闪闪发光了!
凡注明 “艺术中国” 字样的视频、图片或文字内容均属于本网站专稿,如需转载图片请保留
“艺术中国” 水印,转载文字内容请注明来源艺术中国,否则本网站将依据《信息网络传播权保护条例》
维护网络知识产权。为了账号安全,请及时绑定邮箱和手机
从零开始学会做一个简单的APP
从零开始学会做一个简单的APP
从零开始学会做一个简单的APP
本人是矿大学信息安全的大三狗,混了两年日子之后幡然醒悟决定做些自己早就想做的事情,学校的联通宽带是按时长收费的,但是每次查询已用时长和所扣费用步骤都十分的繁琐,大二的时候都想着要自己做一个APP来帮助大家减少这些繁琐的步骤,终于拖了半年多才开始做。从只有一点Java基础到最后做出来可用的APP只用了一个星期的时间,以下是干货内容。(其实我就是想来求红包的!如果能拿到红包那就是我学计算机挣来的第一桶金了!)
最先要上的是成果图,还有在学校发的帖子:
首先我们先看一下正常的查询步骤,第一步,登陆网上营业厅,还要输入繁琐的宽带账户,的确是比较麻烦。
第二步以及以后,反正就是点点点,就不讲解了。
(加载比较慢不好意思,一月份因为没有用所以没有数据,就拿去年12月的代替吧。)
然后我要怎么做呢,首先我知道应该用网络爬虫,我就百度怎么用Java写一个爬虫,然后知道了服务器传输数据都是用的post和get方法,然后在浏览器里面使用合适的工具来将想要的包抓取一下,我学习使用的是火狐浏览器的插件firebug,真的是非常好用的工具推荐给大家。
至于在实际动手写的过程中走过许多许多弯路,最后真正实现了以后才发现其实是很简单。以下开始讲电脑上Java的具体实现。
先讲一下最基本的原理,我们用一个httpclient包中的httpclient帮我们处理cookies,cookies就是一个网站的通用登录凭证,一次登录凭借cookie访问其他页面不用再次登录。我们首先在登录界面登录,再访问查询的页面,应该就能得到想要的数据,这是基本思想。
首先我们先观察登陆的时候是怎么给服务器发送数据的。
其中几个参数意义不明,我换其他账号用相同的参数get过去是一样的,所以我们构造一个url传送给服务器进行验证即可。
以下是Java代码中构造的一段代码(Android中自带的org.apache包中好像没有这个构造函数了,所以还是直接写一个url上去比较方便。)
生成uri用get方法传递过去即可
URI uri=new URIBuilder()
.setScheme(&https&)
.setHost(&&)
.setPath(&/portal/Service/MallLogin&)
.setParameter(&callback&,&jQuery2&)
.setParameter(&redirectURL&,&http%3A%2F%&)
.setParameter(&userName&, &&)//用户名
.setParameter(&password&, &xxxxxx&)//密码
.setParameter(&pwdType&,&01&)
.setParameter(&productType&,&04&)
.setParameter(&redirectType&,&01&)
.setParameter(&areaCode&,&350&)
.setParameter(&arrcity&,&%E5%BE%90%E5%B7%9E&)
.setParameter(&&,&8&)
.build();//生成想要的URL
HttpGet htg0=new HttpGet(uri);
接下来我们再看我们想要的数据是怎么来的。
很明显是通过一系列的post方法从服务器的response中以json的形式返回的。其中flowfee就是费用,totalflow时长。
这里有一个问题难住了很久,百度了好久最后才实验出来一个解决方法,那就是我直接模拟这个post包向服务器的地址post数据并没有获得想要的返回,而是提示500错误,最后的解决办法是这样的。从上图可以看到我们psot过去的还有很多不明意义的东西,我点开都看了看完全不知道是干嘛的,但是事实就是我们把前面那几条不明意义的数据向服务器post过去后就可以正常返回我们想要的数据了。至于应该怎么解析json之类的小问题百度一下就好啦。
在本文最后会附上电脑的Java源码,记得要导入几个jar包才可以运行。
接下来就是神一般的三天安卓速成大法了,我在网上找了几本Android开发教程,从目录里找我需要用到的章节,只学需要用到的地方,所以才能只用了三天就写出来这个安卓程序。实际上也很简单,只有一个Activity,布局上直接拖得控件也没做什么设计。真正的难点是多线程的使用。因为在Android中需要处理网络任务的时候不能再主线程中处理,主线程只能进行UI的处理。所以在如何使用handler这方面百度了很多很多例子,最终成功的实现了多线程的编写。除了最主要的抓取数据的程序外,剩下就是一些记住密码啊,从系统中读取当前日期之类的小地方的细节,最终写出来了这个APP并且先给同学试用了一下,最终上传到百度云通过贴吧和空间稍微推广一下希望能够帮到更多的同学。
其实做完之后自己的感想就是,现在网络上资源十分丰富,也有各种前辈写的各种blog能够给你提供详细的讲解和实例,你真正需要挑战的是自己的耐性。能不能够静下心来决心去做好这件事,然后在试错的道路上坚持下来一直走到你最终找到了正确的道路的那一刻。
我一开始不知道httpclient,试图自己处理cookies,下载安卓的开发软件和环境也是个挑战,后来Android开发的时候导入jar包也出了很多问题(最后用的本身SDK带的org.apache包),调试的时候不知道断点怎么用的,多线程试图模仿着写了3个都没能用,还有好多乱七八糟的问题,但是现在都想不起来了,只是记得当时自己哪怕很烦,哪怕半夜断网我开着流量下sdk,我都没有放弃,可能总共花了5,60个小时做这个事,其中估摸着除了十个小时是在做正确的事,其他时候都是在做无用功,但是我还是做出来了。
这是我上大学以来做出的最有成就感的事情了,完全独立的解决(好吧,Android调试我问了问做过开发的同学)一个问题,真的很有成就感。这个算是教程也算是心得的东西早就想写了,但是自己又犯了拖延症一直到放假都没有写出来,这次看到慕课的这个送红包的活动真的很有动力就认真的过来讲一讲,发出来望各位大学迷茫的it狗们共勉。
附:import java.net.URI;
import java.util.ArrayL
import java.util.L
import org.apache.http.HttpR
import org.apache.http.HttpS
import org.apache.http.NameValueP
import org.apache.http.client.entity.UrlEncodedFormE
import org.apache.http.client.methods.CloseableHttpR
import org.apache.http.client.methods.HttpG
import org.apache.http.client.methods.HttpP
import org.apache.http.client.utils.URIB
import org.apache.http.impl.client.CloseableHttpC
import org.apache.http.impl.client.HttpC
import org.apache.http.message.BasicNameValueP
import org.apache.http.util.EntityU
import net.sf.json.JSONO
public class HelloWorld {
public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub
CloseableHttpClient httpclient = HttpClients.createDefault();
*生成uri用get方法传递过去即可
URI uri=new URIBuilder()
.setScheme("https")
.setHost("")
.setPath("/portal/Service/MallLogin")
.setParameter("callback","jQuery")
.setParameter("redirectURL","http%3A%2F%")
.setParameter("userName", "")//用户名
.setParameter("password", "xxxxxx")//密码
.setParameter("pwdType","01")
.setParameter("productType","04")
.setParameter("redirectType","01")
.setParameter("areaCode","350")
.setParameter("arrcity","%E5%BE%90%E5%B7%9E")
.setParameter("_","8")
.build();//生成想要的URL
HttpGet htg0=new HttpGet(uri);
HttpResponse response0 = httpclient.execute(htg0);
System.out.println(htg0.getURI());
System.out.println(response0.getStatusLine());
String confirm = EntityUtils.toString(response0.getEntity(), "utf-8");
if (confirm.contains("resultCode:\"0000\""))
System.out.println("登陆成功");
* 依次向服务器post
* 前面这些貌似必须先请求响应,会自动生成cookie
* 均为不带post实体内容的
HttpPost postU=new HttpPost();
List&String& postUri=new ArrayList&&();
postUri.add("/e3/static/check/checklogin/?_=6");
postUri.add("/e3/static/common/info?_=6");
postUri.add("/e3/static/header");
postUri.add("/e3/static/query/newsAssistant/search?_=7");
postUri.add("/e3/static/check/checklogin?_=7");
postUri.add("/e3/static/check/checklogin?_=1");
for(String post:postUri)
URI poU=new URIBuilder(post).build();
postU.setURI(poU);
response0=httpclient.execute(postU);
System.out.println(response0.getStatusLine());
System.out.println("执行完成");
String result0=EntityUtils.toString(response0.getEntity(), "utf-8");
System.out.println(result0);
System.out.println("准备完成");
* 最后post能够得到想要数据的那条
HttpPost htp=new HttpPost("/e3/static/query/callFlow?_=5&menuid=");
List&NameValuePair& parameters = new ArrayList&NameValuePair&();
parameters.add(new BasicNameValuePair("pageNo", "1"));
parameters.add(new BasicNameValuePair("pageSize", "20"));
parameters.add(new BasicNameValuePair("beginDate", ""));//
parameters.add(new BasicNameValuePair("endDate", ""));
UrlEncodedFormEntity urlEntity =
new UrlEncodedFormEntity(parameters, "UTF-8");
htp.setEntity(urlEntity);
CloseableHttpResponse response1 = httpclient.execute(htp);
System.out.println(response1.getStatusLine());
String result = EntityUtils.toString(response1.getEntity(), "utf-8");
System.out.println(result);
JSONObject ob = JSONObject.fromObject(result);
String totalflow=ob.get("totalflow").toString();
System.out.println(totalflow);
附2(Android源码):package com.example.sunyang.
import android.content.SharedP
import android.os.B
import android.os.H
import android.os.L
import android.os.M
import android.support.v7.app.AppCompatA
import android.view.V
import android.widget.B
import android.widget.CheckB
import android.widget.EditT
import android.widget.TextV
import android.widget.T
import org.apache.http.HttpR
import org.apache.http.NameValueP
import org.apache.http.client.ClientProtocolE
import org.apache.http.client.HttpC
import org.apache.http.client.entity.UrlEncodedFormE
import org.apache.http.client.methods.HttpG
import org.apache.http.client.methods.HttpP
import org.apache.http.impl.client.DefaultHttpC
import org.apache.http.message.BasicNameValueP
import org.apache.http.util.EntityU
import org.json.JSONA
import org.json.JSONO
import java.io.IOE
import java.io.UnsupportedEncodingE
import java.net.MulticastS
import java.text.SimpleDateF
import java.util.ArrayL
import java.util.D
import java.util.L
public class MainActivity extends AppCompatActivity {
HttpClient httpC
SharedPreferences.E
主线程中构造handler,更新UI的请求用sendMessage发送,在下面完成.
Handler handler=new Handler(){
public void handleMessage(Message msg){
if (msg.what==0x123){
res.append(msg.obj.toString()+&\n&);
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
httpClient=new DefaultHttpClient();
preferences=getSharedPreferences("userInfo",MODE_WORLD_READABLE);
editor=preferences.edit();
res=(TextView) findViewById(R.id.result);
Button bn=(Button) findViewById(R.id.button);
final EditText username=(EditText) findViewById(R.id.userName);
final EditText password=(EditText) findViewById(R.id.password);
final CheckBox checkBox=(CheckBox) findViewById(R.id.checkBox);
if (preferences.getBoolean("AUTO_ISCHECK",true)){
username.setText(preferences.getString("userName", ""));
password.setText(preferences.getString("password", ""));
bn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
final String name=username.getText().toString();
final String pwd=password.getText().toString();
if(checkBox.isChecked()){
editor.putString("userName", name);
editor.putString("password", pwd);
editor.putBoolean("AUTO_ISCHECK", true).commit();//存储用户名密码在xml文件
else editor.putBoolean("AUTO_ISCHECK",false).commit();
new Thread()
用于网络的线程
public void run(){
用于登陆的代码
String url="/portal/Service/MallLogin?callback=jQuery&redirectURL=http%253A%252F%" +
"&userName=" +name+
"&password=" +pwd+
"&pwdType=01&productType=04&redirectType=01&areaCode=350&arrcity=%25E5%25BE%%25B7%259E&_=8";
HttpGet get=new HttpGet(url);
HttpResponse response=httpClient.execute(get);
String confirm = EntityUtils.toString(response.getEntity(), "utf-8");
Message msg = new Message();
msg.what=0x123;
if (confirm.contains("resultCode:\"0000\"")){
msg.obj="登陆成功";
handler.sendMessage(msg);
msg.obj="用户名或者密码错误";
handler.sendMessage(msg);
发送post请求的代码
List&String& postUri=new ArrayList&&();
postUri.add("/e3/static/check/checklogin/?_=6");
postUri.add("/e3/static/common/info?_=6");
postUri.add("/e3/static/header");
postUri.add("/e3/static/query/newsAssistant/search?_=7");
postUri.add("/e3/static/check/checklogin?_=7");
postUri.add("/e3/static/check/checklogin?_=1");
for(String post:postUri)
HttpPost postU=new HttpPost(post);
HttpResponse response0=httpClient.execute(postU);
Message msg1=new Message();
msg1.what=0x123;
msg1.obj="发送请求";
handler.sendMessage(msg1);
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat sdf1=new SimpleDateFormat("yyyy-MM");
String endDate=sdf.format(new Date());
String beginDate=sdf1.format(new Date())+"-01";
Message msg2=new Message();
msg2.what=0x123;
msg2.obj="开始日期:"+beginDate+"\t截止日期:"+endD
handler.sendMessage(msg2);
HttpPost htp=new HttpPost("/e3/static/query/callFlow?_=5&menuid=");
List&NameValuePair& parameters = new ArrayList&NameValuePair&();
parameters.add(new BasicNameValuePair("pageNo", "1"));
parameters.add(new BasicNameValuePair("pageSize", "20"));
parameters.add(new BasicNameValuePair("beginDate", beginDate));
parameters.add(new BasicNameValuePair("endDate", endDate));
UrlEncodedFormEntity urlEntity =
new UrlEncodedFormEntity(parameters, "UTF-8");
htp.setEntity(urlEntity);
HttpResponse result=httpClient.execute(htp);
String s = EntityUtils.toString(result.getEntity(), "utf-8");
//处理结果
JSONObject ob = new JSONObject(s);
String totalflow=ob.get("totalflow").toString();
String fee=ob.get("flowfee").toString();
int total=Integer.parseInt(totalflow)/3600;
Message msg3=new Message();
msg3.what=0x123;
msg3.obj="时长合计:"+totalflow+"秒\n"+"大约为"+total+"小时\n"+"费用合计:"+
handler.sendMessage(msg3);
catch (Exception e){
e.printStackTrace();
}.start();
相关标签:
分享即可 +1积分
请登录后,发表评论
评论(Enter+Ctrl)
评论加载中...
评论加载中...
这位童鞋很懒,什么也没有留下~~!
Copyright (C)
All Rights Reserved | 京ICP备 号-2}

我要回帖

更多关于 做手机app用什么软件 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信