新浪微博开放平台开发-android客户端(3)

简介:



本文转自 virusswb 51CTO博客,原文链接:http://blog.51cto.com/virusswb/632175,如需转载请自行联系原作者 引言
最近不是太忙,花了一些时间学习android的应用开发。经过两个星期的学习,学习的同时还写了很多的demo示例,可以从 基本控件及基本动画效果等示例demo集合大放送,持续更新下载。
从这个星期开始,准备拿新浪微博开放平台做个实践,开发一个功能简单的android客户端,会尽可能的完善功能。
今天的内容
sinaweibo4
上图是这个客户端的主要界面。今天增加的功能。
  1. 简单的样式和皮肤,只是添加了按钮。
运行的系统是android2.2.
使用到的技术点包括ListView,自定义ListAdapter,多线程相关的Message,Handler,验证相关的OAuth,用户图片的异步加载。
新浪微博的验证使用的是signpost的OAuth组件,没有使用微博的SDK。
源码下载:
源码下载之后,将后缀改为rar,使用压缩软件解压即可。
Style and Themey样式和皮肤
 
通过样式和皮肤可以美化我们的UI,经过美化的UI会更加吸引用户,至少让我们的应用看起来不至于很丑陋(当然了,也需要合理的样式和皮肤,否则可能会更丑陋)。
样式和皮肤有下面几种使用场景:
1 给一个控件添加独立的样式
  •     定义一个样式
  • <style name="Text"> <item name="android:textSize">20sp</item> <item name="android:textColor">#00dd9a</item> </style>
  •     然后在布局文件的控件中使用style=""设置样式
  • <TextView android:text="新浪微博V2" style="@style/Text" android:layout_;wrap_content" android:layout_height="wrap_content" />
 
2 给几个控件添加同种样式
  •     定义一个样式
  • <style name="Text"> <item name="android:textSize">20sp</item> <item name="android:textColor">#00dd9a</item> </style>
  •     在几个控件中都是用style=""设置样式
  • <TextView android:text="新浪微博V2" style="@style/Text" android:layout_;wrap_content" android:layout_height="wrap_content" />
  •  <TextView android:text="欢迎使用" style="@style/Text" android:layout_width="wrap_content" android:layout_height="wrap_content" />
3 修改相同种类的控件的样式,例如所有的button的样式,想实现这个效果,有两个方法。
  • 方法1:定义一个样式,然后在每个button中使用style属性应用这个样式。
  • <style name="Button" parent="@android:style/Widget.Button"> <item name="android:gravity">center_vertical|center_horizontal</item> <item name="android:textColor">#FFFFFFFF</item> <item name="android:shadowColor">#FF000000</item> <item name="android:shadowDx">0</item> <item name="android:shadowDy">-1</item> <item name="android:shadowRadius">0.2</item> <item name="android:textSize">16dip</item> <item name="android:textStyle">bold</item> <item name="android:background">@drawable/com_sinaweibo2_list_button_selector</item> </style>
  •  <Button android:text="Add" android:id="@+id/com_sinaweibo2_list_btnAdd" style="@style/Button" android:layout_toRightOf="@id/com_sinaweibo2_list_btnRefresh" android:layout_height="wrap_content" android:layout_;wrap_content" />
    • 方法2:定义为皮肤,然后再manifest文件中应用在application,或者是activity上。 
    • < style  name ="Button"  parent ="@android:style/Widget.Button" >  < item  name ="android:gravity" >center_vertical|center_horizontal </ item >  < item  name ="android:textColor" >#FFFFFFFF </ item >  < item  name ="android:shadowColor" >#FF000000 </ item >  < item  name ="android:shadowDx" >0 </ item >  < item  name ="android:shadowDy" >-1 </ item >  < item  name ="android:shadowRadius" >0.2 </ item >  < item  name ="android:textSize" >16dip </ item >  < item  name ="android:textStyle" >bold </ item >  < item  name ="android:background" >@drawable/com_sinaweibo2_list_button_selector </ item >  </ style >  < style name ="CustomButton"  parent ="@android:style/Theme.NoTitleBar" >  < item name ="android:buttonStyle" >@style/Button </ item >  </ style >
       
       
      < application  android:icon ="@drawable/icon"  android:label ="@string/app_name"  android:theme ="@style/CustomButton" >
       
            显然使用第二种的好处是修改样式,甚至是样式的名字,只需要修改style的定义就可以了,不用在使用style的地方修改任何地方。第二种方法中样式的应用范围是一个activity或者是整个application,如果想做某几个button的控制就只能用第一种方法了。
            需要注意的地方
            如果只是给文字用的话,直接定义一个一个样式就可以了。
            如果是给控件用的话,就需要继承一个基类的样式,然后进行自己的修改,要不然控件会只剩下你定义的样式,其他的都没有了,甚至一个button都可能不能点击了,就是因为样式定义的不完整。为了确保定义完整,你需要继承系统的控件样式,然后进行自己的修改。
            <item name="android:buttonStyle">@style/Button</item> 中的buttonStyle代表这个样式或者皮肤应用在所有的button上面。每一种控件都有这几的style,例如listViewStyle、textViewStyle等等。可以在 系统自带的皮肤中查找。另外 样式和皮肤的使用系统自带的样式也是不错的学习资源。
             
            更多功能
            接下来可能会支持的功能:
            • 上下文菜单,删除,添加关注,取消关注,查看某个用户的微博等等。
            • 发表博文支持图片。
            • UI的美化,性能的优化。
            总结
            学习的过程中看过两本书,Pro.Android.2.pdf和Professional.Android.2.Application.Development.(Wrox,.2010,.0470565527).pdf,都是很不错的入门书籍。书我没有全看完,看完大部分吧,边看边写demo。
            同时每天泡论坛 http://www.eoeandroid.com/forum.php,eoe的开发者门户。回答问题,解决问题,提出问题,发帖子,总之就是锻炼自己,强迫自己锻炼基础和思考。
            在论坛上,有很多的中文pdf教程,但是发现大多都是翻译 android developer center的Dev Guide和Resources中的内容。所以觉得,如果英文不是很差,建议直接阅读上面的两个板块,同时练习其中的示例,保证两个星期,你会有很大的进步。
            参考资料
            目录
            相关文章
            |
            5天前
            |
            JavaScript 搜索推荐 Android开发
            【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
            【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
            27 8
            【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
            |
            17天前
            |
            前端开发 Java Shell
            【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
            【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
            124 20
            【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
            |
            15天前
            |
            Dart 前端开发 Android开发
            【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
            【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
            37 4
            【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
            |
            1天前
            |
            安全 Android开发 iOS开发
            escrcpy:【技术党必看】Android开发,Escrcpy 让你无线投屏新体验!图形界面掌控 Android,30-120fps 超流畅!🔥
            escrcpy 是一款基于 Scrcpy 的开源项目,使用 Electron 构建,提供图形化界面来显示和控制 Android 设备。它支持 USB 和 Wi-Fi 连接,帧率可达 30-120fps,延迟低至 35-70ms,启动迅速且画质清晰。escrcpy 拥有丰富的功能,包括自动化任务、多设备管理、反向网络共享、批量操作等,无需注册账号或广告干扰。适用于游戏直播、办公协作和教育演示等多种场景,是一款轻量级、高性能的 Android 控制工具。
            |
            9月前
            |
            存储 Java 开发工具
            Android开发的技术与开发流程
            Android开发的技术与开发流程
            430 1
            |
            6月前
            |
            安全 Android开发 Swift
            安卓与iOS开发:平台差异与技术选择
            【8月更文挑战第26天】 在移动应用开发的广阔天地中,安卓和iOS两大平台各占一方。本文旨在探索这两个系统在开发过程中的不同之处,并分析开发者如何根据项目需求选择合适的技术栈。通过深入浅出的对比,我们将揭示各自平台的优势与挑战,帮助开发者做出更明智的决策。
            107 5
            |
            6月前
            |
            移动开发 搜索推荐 Android开发
            安卓与iOS开发:一场跨平台的技术角逐
            在移动开发的广阔舞台上,两大主角——安卓和iOS,持续上演着激烈的技术角逐。本文将深入浅出地探讨这两个平台的开发环境、工具和未来趋势,旨在为开发者揭示跨平台开发的秘密,同时激发读者对技术进步的思考和对未来的期待。
            |
            6月前
            |
            移动开发 开发工具 Android开发
            探索安卓与iOS开发的差异:技术选择的影响
            【8月更文挑战第17天】 在移动应用开发的广阔天地中,安卓和iOS两大平台各领风骚。本文通过比较这两个平台的编程语言、开发工具及市场策略,揭示了技术选择对开发者和产品成功的重要性。我们将从开发者的视角出发,深入探讨不同平台的技术特性及其对项目实施的具体影响,旨在为即将步入移动开发领域的新手提供一个清晰的指南,同时给予资深开发者新的思考角度。
            79 3
            |
            6月前
            |
            编解码 Android开发 iOS开发
            安卓与iOS开发:平台差异下的技术创新之路
            在数字时代的浪潮中,移动应用开发如同两股潮流——安卓与iOS,各自携带着独特的技术生态和文化基因。本文将深入探讨这两大平台的开发环境、编程语言和工具的差异,以及它们如何塑造了不同的用户体验和技术趋势。通过比较分析,我们旨在揭示跨平台开发的可能性和挑战,同时探索未来技术创新的方向。让我们一起跟随代码的足迹,穿越安卓的开放草原和iOS的精密园林,发现那些隐藏在平台差异之下的创新机遇。
            54 1
            |
            6月前
            |
            移动开发 Java Android开发
            安卓与iOS开发:选择的艺术与技术的较量
            在移动应用开发的广阔天地中,安卓和iOS两大平台各自占据着半壁江山。本文将探讨这两个平台在开发过程中的异同,以及它们如何影响开发者的选择。我们将从技术栈、市场份额、用户群体等方面进行分析,并结合案例来说明不同平台的优势与挑战。无论你是初涉移动开发领域的新手,还是经验丰富的老手,这篇文章都将为你提供有价值的见解。让我们一起探索这片充满机遇与挑战的土地吧!

            热门文章

            最新文章

          • 1
            如何修复 Android 和 Windows 不支持视频编解码器的问题?
          • 2
            Android历史版本与APK文件结构
          • 3
            【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
          • 4
            当flutter react native 等混开框架-并且用vscode-idea等编译器无法打包apk,打包安卓不成功怎么办-直接用android studio如何打包安卓apk -重要-优雅草卓伊凡
          • 5
            APP-国内主流安卓商店-应用市场-鸿蒙商店上架之必备前提·全国公安安全信息评估报告如何申请-需要安全评估报告的资料是哪些-优雅草卓伊凡全程操作
          • 6
            【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
          • 7
            【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
          • 8
            【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
          • 9
            Android经典面试题之Kotlin中Lambda表达式和匿名函数的区别
          • 10
            Cellebrite UFED 4PC 7.71 (Windows) - Android 和 iOS 移动设备取证软件
          • 1
            escrcpy:【技术党必看】Android开发,Escrcpy 让你无线投屏新体验!图形界面掌控 Android,30-120fps 超流畅!🔥
            21
          • 2
            【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
            27
          • 3
            Cellebrite UFED 4PC 7.71 (Windows) - Android 和 iOS 移动设备取证软件
            29
          • 4
            【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
            40
          • 5
            Android历史版本与APK文件结构
            126
          • 6
            【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
            33
          • 7
            【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
            27
          • 8
            APP-国内主流安卓商店-应用市场-鸿蒙商店上架之必备前提·全国公安安全信息评估报告如何申请-需要安全评估报告的资料是哪些-优雅草卓伊凡全程操作
            60
          • 9
            【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
            37
          • 10
            当flutter react native 等混开框架-并且用vscode-idea等编译器无法打包apk,打包安卓不成功怎么办-直接用android studio如何打包安卓apk -重要-优雅草卓伊凡
            73