`
jandroid
  • 浏览: 1891696 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Android页面做美观了真的很难,没信心做自己的应用了,无聊时间做了个QQ仿制品

阅读更多

上个月买了个 xt701, 心想无聊还可以写个应用呢 , 费了 2 周时间学习 Android 的写法,以为熟悉了。然后写了个五子棋,当时以为做界面和 Swing 一样呢,根本没想到多复杂,就把主要精力放在对弈上了,用了 4 5 天时间写了电脑的算法,终于我这个初级的五子棋水平已经下不过电脑了,很兴奋的以为程序就完成了,随便去市场一看 ^^_^^_^, 五子棋程序好多,心想可能五子棋太简单了,反正思路差不多,都是对弈,改写象棋吧,又用了一周写了象棋的算法,开始都是在电脑写,终于搜索深度高的时候,根本打不过电脑(我象棋也很菜),很高兴的移植到手机上,发现手机内存和 cpu 没那么牛,又开始改,最后终于可以在手机上跑了,以为就完成了,结果这就是是悲剧的开始呀。
  
算法写完了,就开始弄界面,悲剧的发现 Android 的界面好难弄,我以前写 swing 都是完全用代码根据 layout 写界面然后放在文件里的,开始用 xml 配置还真不了解,头大后自我安慰:反正大家玩的是游戏,不是界面,随便写个就当玩票吧(其实也是工作开始忙了,上班没那么多时间了 . )随便去网上弄了几个图片,改了改就把我的第一个程序五子棋弄出来了,丢人 ... 看看界面:

写完之后很得意的在自己手机上跑了跑,觉得蛮不错的,丑了点还是可以玩嘛,呵呵,然后开始找我的第一个用户,找到了邻座的同事,他是 G8 ,请求了好久,保证不是垃圾程序之后终于给他装上了,然后效果:

被人好好嘲笑了一番,说这种东西有谁用,你没这个天分呀,郁闷。。

正好这时候来了个新活,就放弃不写了,过了 2 周又闲了,心想应该把上次的写完,还有个象棋的呢,算法写了那么久不用不浪费了。又开始写,写完之后在不同手机上一跑,自卑了,根本不行(当时就会用 linelayout 和绝对定位);想了想还是努力学习下怎么做界面吧,要不然写的好也没用啊,于是在手机上翻了翻,发现 QQ 的界面很不错,就仿照他写吧 .

显示快捷方式,这个简单以前就会:

    Intent.ShortcutIconResource shortcutIconResource = Intent.ShortcutIconResource

              .fromContext ( this , R.drawable. icon );

       iconIntent.putExtra( "android.intent.extra.shortcut.ICON_RESOURCE" ,

              shortcutIconResource);

       iconIntent.setAction( "com.android.launcher.action.INSTALL_SHORTCUT" );

       sendBroadcast(iconIntent);

配置里再加个:

<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />

效果也差不多:


然是是状态栏的小图标,这个要一直存在,除非退出:
->

在网上查了许久,用 Notification

Notification notification = new Notification (

                  R.drawable. icon_online , " 手机 QQ 正在运行 " , System

                         .currentTimeMillis ());

           RemoteViews remoteviews = new RemoteViews(

                  activity .getPackageName(),

                  R.layout. notification_app_running );

然后对 remoteviews 编辑就可以了 , 它也有图片文字和布局属性 , 最重要是要一直保持在消息栏上面

notification.flags = notification.flags| Notification.FLAG_ONGOING_EVENT;

然后就是登陆了

登陆主界面只能一点点的绘制了,最终也不怎么好

-> ->

网络设置可以调用系统的

           Intent intent = new Intent( "android.settings.WIRELESS_SETTINGS" );

           this .startct ivity(intent)
"关于"要自己写一个

版权之类的也是一个简单的 HelpActivity ,用 Html

                  .fromHtml 转换就可以了

-> ->
"退出"就是是一个简单的对话框,修改下样式,做个监听就好了 :

然后是登陆的动画界面:


直接用 AnimationDrawable 使用一个 Handler

           Handler loginHandler = new Handler();

           loginHandler.postDelayed( new LoginRunable(), 2000L);

在线程里

    if ( animationDrawable != null ) {

              animationDrawable .stop();

              animationDrawable .start();

登陆完就是主界面,这个比较复杂,有 title bottom 还有 tabwidget,中间是一个treeview,需要自己重写:


这张不好,用户少(我是随即生成用户,没办法又没服务器),再来一张

-> ->

它的最上面是 topwidget ,点击头像跳转, 界面很好做,一个 listview 就可以了,关键还是图片呀,终于发现美工比程序员重要多了,资料界面:


点击声音设置跳转设置界面:

之后都是在listview上添加监听, 都是一些简单的界面
-> -> ->
中间如果考虑费时间的,可以加个Handler,做一个等待标志
->
在线状态,签名,皮肤设置都是简单的Activity:
-> ->
下载费时间的可以用线程,这里我都用随即模拟的:
-> ->
群的和好友的基本是一致的
-> -> ->
-> ->
web的浏览和好友的类似,都是treeview
-> ->
还有就是聊天和历史记录了,这个不好做,随便弄了下
-> -> ->
还 有几个简单的退出之类的,其实除了主界面的treeview,都很简单,主要是布局和图片美工,越做我越发现美工差还是不要做了,会做是一回事,做好是另 外一回事,差距有十万八千里呀,最后来个注销,把我的Android也先注销了,先弄点美工知识了,要不做出来也没人要啊.^_^^_^
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics