- 浏览: 276110 次
- 性别:
- 来自: 成都
博客专栏
-
Android腾讯微博客户...
浏览量:95832
文章分类
最新评论
-
依旧如风:
u012209919 写道一按“添加用户”就出错了,
Android腾讯微薄客户端开发十五:终结篇(分享源代码) -
bn922:
wxw1111wang 写道楼主黑屏怎么解决啊?急求你看看是不 ...
利用ffmpeg和SDL实现一个跨android版本的音视频播放器 -
wxw1111wang:
楼主黑屏怎么解决啊?急求
利用ffmpeg和SDL实现一个跨android版本的音视频播放器 -
lwbao28:
为什么下载下来解压后没有后缀名,都不知道怎么打开。
利用ffmpeg和SDL实现一个跨android版本的音视频播放器 -
璇儿0227:
为什么打开后页面显示不出来,而且没法添加账户?代码也没有显示错 ...
Android腾讯微薄客户端开发十五:终结篇(分享源代码)
点击广播,显示此博主所发表的所有微博
public class TweetsActivity extends ListActivity implements OnItemClickListener{ private DataHelper dataHelper; private UserInfo user; private MyWeiboSync weibo; private Handler handler; private AsyncImageLoader asyncImageLoader; private TweetsThread thread; private ListView listView; private ProgressDialog progressDialog; private JSONArray array; private TweetsAdapter adapter; private String name; private String currentNick;//当前界面的昵称 private View top_panel; private Button top_btn_left; private Button top_btn_right; private TextView top_title; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.tweets); setUpViews();//设置view setUpListeners();//设置listenter asyncImageLoader = new AsyncImageLoader(); dataHelper = new DataHelper(TweetsActivity.this); weibo = new MyWeiboSync(); List<UserInfo> userList = dataHelper.GetUserList(false); SharedPreferences preferences = getSharedPreferences("default_user",Activity.MODE_PRIVATE); String nick = preferences.getString("user_default_nick", ""); if (nick != "") { user = dataHelper.getUserByName(nick,userList); } weibo.setAccessTokenKey(user.getToken()); weibo.setAccessTokenSecrect(user.getTokenSecret()); Intent intent = getIntent(); name = intent.getStringExtra("name");//获取从前面页面传递过来的数据 currentNick = intent.getStringExtra("nick"); top_title.setText(currentNick+"的广播"); progressDialog = new ProgressDialog(TweetsActivity.this);// 生成一个进度条 progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); progressDialog.setTitle("请稍等"); progressDialog.setMessage("正在读取数据中!"); handler = new TweetsHandler(); thread = new TweetsThread(); thread.start();//开启一个线程获取数据 progressDialog.show(); } private void setUpViews(){ listView = getListView(); top_panel = (View)findViewById(R.id.tweets_top); top_btn_left = (Button)top_panel.findViewById(R.id.top_btn_left); top_btn_right = (Button)top_panel.findViewById(R.id.top_btn_right); top_title = (TextView)top_panel.findViewById(R.id.top_title); } private void setUpListeners(){ listView.setOnItemClickListener(this); } class TweetsThread extends Thread { @Override public void run() { String jsonStr = weibo.getTweets(weibo.getAccessTokenKey(), weibo.getAccessTokenSecrect(),PageFlag.PageFlag_First, 0, 20, 0,name); try { JSONObject dataObj = new JSONObject(jsonStr).getJSONObject("data"); array = dataObj.getJSONArray("info"); } catch (JSONException e) { e.printStackTrace(); } //通知handler处理数据 Message msg = handler.obtainMessage(); handler.sendMessage(msg); } } class TweetsHandler extends Handler { @Override public void handleMessage(Message msg){ adapter = new TweetsAdapter(TweetsActivity.this, array); listView.setAdapter(adapter); progressDialog.dismiss();// 关闭进度条 } } class TweetsAdapter extends BaseAdapter { private Context context; private LayoutInflater inflater; private JSONArray array; public TweetsAdapter(Context context, JSONArray array) { super(); this.context = context; this.array = array; this.inflater = LayoutInflater.from(context); } @Override public int getCount() { return array.length(); } @Override public Object getItem(int position) { return array.opt(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(final int position, View convertView, ViewGroup parent) { asyncImageLoader = new AsyncImageLoader(); TweetsViewHolder viewHolder = new TweetsViewHolder(); JSONObject data = (JSONObject)array.opt(position); JSONObject source = null; convertView = inflater.inflate(R.layout.tweets_list_item, null); try { source = data.getJSONObject("source"); } catch (JSONException e1) { e1.printStackTrace(); } viewHolder.tweets_headicon = (ImageView) convertView.findViewById(R.id.tweets_headicon); viewHolder.tweets_nick = (TextView) convertView.findViewById(R.id.tweets_nick); viewHolder.tweets_hasimage = (ImageView) convertView.findViewById(R.id.tweets_hasimage); viewHolder.tweets_timestamp = (TextView) convertView.findViewById(R.id.tweets_timestamp); viewHolder.tweets_origtext = (TextView) convertView.findViewById(R.id.tweets_origtext); viewHolder.tweets_source = (TextView) convertView.findViewById(R.id.tweets_source); if(data!=null){ try { convertView.setTag(data.get("id")); viewHolder.tweets_nick.setText(data.getString("nick")); viewHolder.tweets_timestamp.setText(TimeUtil.converTime(Long.parseLong(data.getString("timestamp")))); viewHolder.tweets_origtext.setText(data.getString("origtext"), TextView.BufferType.SPANNABLE); if(source!=null){ viewHolder.tweets_source.setText(source.getString("origtext")); viewHolder.tweets_source.setBackgroundResource(R.drawable.source_bg); } //异步加载图片 Drawable cachedImage = asyncImageLoader.loadDrawable(data.getString("head")+"/100",viewHolder.tweets_headicon, new ImageCallback(){ @Override public void imageLoaded(Drawable imageDrawable,ImageView imageView, String imageUrl) { imageView.setImageDrawable(imageDrawable); } }); if (cachedImage == null) { viewHolder.tweets_headicon.setImageResource(R.drawable.icon); } else { viewHolder.tweets_headicon.setImageDrawable(cachedImage); } if(data.getJSONArray("image")!=null){ viewHolder.tweets_hasimage.setImageResource(R.drawable.hasimage); } } catch (JSONException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } } return convertView; } } static class TweetsViewHolder { private ImageView tweets_headicon; private TextView tweets_nick; private TextView tweets_timestamp; private TextView tweets_origtext; private TextView tweets_source; private ImageView tweets_hasimage; } @Override public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) { JSONObject weiboInfo = (JSONObject)array.opt(position); Intent intent = new Intent(TweetsActivity.this, WeiboDetailActivity.class); try { intent.putExtra("weiboid", weiboInfo.getString("id")); startActivity(intent); } catch (JSONException e) { e.printStackTrace(); } } }
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#ffffffff" xmlns:android="http://schemas.android.com/apk/res/android"> <include android:id="@+id/tweets_top" layout="@layout/top_panel" android:layout_alignParentTop="true"/> <ListView android:id="@id/android:list" android:layout_below="@id/tweets_top" android:layout_width="fill_parent" android:cacheColorHint="#00000000" android:layout_height="wrap_content" android:layout_weight="1" android:divider="@drawable/list_divider"/> <RelativeLayout android:layout_width="fill_parent" android:layout_height="40.0dip" android:layout_alignParentBottom="true"> <Button android:id="@+id/mytweet_back_btn" android:layout_width="40.0dip" android:drawableTop="@drawable/btn_back_selector" android:background="@drawable/bottom_back_bg" android:layout_height="40.0dip" android:layout_alignParentLeft="true"/> <Button android:id="@+id/mytweet_tohome_btn" android:layout_width="40.0dip" android:layout_height="40.0dip" android:drawableTop="@drawable/btn_home_selector" android:background="@drawable/bottom_home_bg" android:layout_alignParentRight="true"/> </RelativeLayout> </RelativeLayout>
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:paddingTop="3.0dip" android:orientation="horizontal" android:background="@drawable/listitem_selector" android:layout_width="fill_parent" android:layout_height="wrap_content"> <RelativeLayout android:layout_width="50.0dip" android:layout_height="50.0dip" android:layout_weight="0.0"> <ImageView android:id="@+id/tweets_headicon" android:layout_width="45.0dip" android:layout_height="45.0dip" android:scaleType="fitCenter" android:layout_centerInParent="true" /> </RelativeLayout> <RelativeLayout android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="4.0dip" android:layout_weight="1.0"> <TextView android:id="@+id/tweets_nick" android:textColor="#000000" android:layout_width="wrap_content" android:layout_height="32.0dip" android:textSize="14.0sp" android:layout_alignParentLeft="true"/> <TextView android:id="@+id/tweets_timestamp" android:textColor="#ff000000" android:layout_width="wrap_content" android:layout_height="32.0dip" android:textSize="8.0sp" android:layout_alignParentRight="true"/> <ImageView android:id="@+id/tweets_hasimage" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toLeftOf="@id/tweets_timestamp"/> <TextView android:id="@+id/tweets_origtext" android:textColor="#081008" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="12.0sp" android:layout_below="@id/tweets_nick"/> <TextView android:layout_marginLeft="6.0dip" android:id="@+id/tweets_source" android:textColor="#101810" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="10.0sp" android:layout_below="@id/tweets_origtext" android:layout_alignParentBottom="true"/> </RelativeLayout> </LinearLayout>
发表评论
-
Android腾讯微薄客户端开发十五:终结篇(分享源代码)
2011-08-01 19:38 23105【有问题的同学请先仔 ... -
Android腾讯微薄客户端开发十四:首页menu菜单
2011-08-01 19:10 4740覆写onCreateOptionsMenu方法 @Over ... -
Android腾讯微薄客户端开发十三:提及篇(与我有关的微博)
2011-07-31 18:53 3164public class ReferActivity ext ... -
Android腾讯微薄客户端开发十二:博主的偶像
2011-07-31 18:34 2628点击收听,显示此博主的偶像列表,点击列表,将显示偶像的详情界 ... -
Android腾讯微薄客户端开发十一:博主的粉丝
2011-07-31 18:19 2383点击听众,显示博主的粉丝列表,点击列表中的粉丝,显示此粉丝详 ... -
Android腾讯微薄客户端开发九:博主详情界面篇(广播,听众,收听)
2011-07-31 17:52 3125点击顶部的标题栏,界面跳转到此博主的关注界面 关注界面,此 ... -
Android腾讯微薄客户端开发八:微博查看(转播,对话,点评)
2011-07-31 17:39 3065如果是自己的微博,可以干掉它 下面三幅图是转播,对话以 ... -
Android腾讯微薄客户端开发七:图片加圆角以及时间处理工具类
2011-07-30 13:36 4080给图片加上圆角效果好看多了。 public class ... -
Android腾讯微博客户端开发六:给用户加VIP认证以及美化微博显示内容
2011-07-30 13:07 3621哈哈,通过VIP标志看到赵薇是冒牌的,李开复和冯小刚是正品。 ... -
Android腾讯微博客户端开发5:利用FootView实现ListView滑动动态加载实现分页
2011-07-27 01:34 11220老规矩,先上图 这张图片左边部分和右边部分还是有很大的不同,不 ... -
Android腾讯微博客户端开发四:微博发送篇(QQ表情,@搜索)
2011-07-25 00:55 6223凌晨发帖不容易啊, 有一个问题,谁做过android的自定义 ... -
Android腾讯微博客户端开发三:多账号管理的实现
2011-07-22 19:41 7684先看看效果。。 列表中的账号是保存在sqlite数据库中的, ... -
Android腾讯微博客户端开发二:相关工具篇
2011-07-22 18:19 5650工欲善其事,必先利其器。先给大家介绍3个我在做腾讯微博客户端开 ... -
Android腾讯微博客户端开发一:在下方的Tab的实现
2011-07-20 18:58 12652javaEye处女贴 下面的是res下drawabl ...
相关推荐
Android腾讯微博客户端开发
本篇文章将基于“Android腾讯微博客户端源码”这一主题,深入探讨其中的关键技术和设计理念,帮助开发者们提升对Android应用开发的理解。 一、架构设计 腾讯微博客户端源码采用MVC(Model-View-Controller)架构...
本篇文章将基于提供的"移动应用Android 腾讯微博客户端源码"进行深入解析,揭示其背后的设计理念、技术架构以及实现细节,为Android开发人员提供宝贵的参考资料。 首先,我们需要理解Android应用的基本结构。一个...
【标题】"Android 腾讯微博客户端源码1.rar" 涵盖了Android平台上腾讯微博客户端应用程序的源代码,这是一个深入理解Android应用开发、社交网络集成以及腾讯微博API使用的宝贵资源。在这个源码中,我们可以看到如何...
android腾讯微博客户端源码,功能基本齐全。
【Android 腾讯微博客户端源码】是一个深入学习Android应用开发的重要资源,它揭示了腾讯微博客户端在Android平台上的实现细节。这个源码库包含了客户端的所有组件、模块和功能,为开发者提供了一个鲜活的实例,可以...
本次我们关注的是"Android腾讯微博客户端源码",这是一份可以帮助开发者深入了解腾讯微博客户端实现细节的宝贵资源。通过对这份源码的学习,我们可以了解到如何构建一个功能完备、用户友好的社交应用。 首先,从...
在Android应用开发中,腾讯微博客户端的构建是一个典型的案例,涉及到许多高级技术和设计模式。本篇文章将聚焦于如何利用FootView来实现ListView的滑动动态效果,这在提供用户友好的交互体验上至关重要。 首先,...
【腾讯微博客户端源码】是一个面向Android平台的应用程序开发项目,它提供了全面的功能,与腾讯微博服务进行交互。源码的可用性使得开发者能够深入理解微博客户端的内部工作原理,学习如何实现各种社交网络功能,...
在Android平台上实现腾讯微博客户端是一项涉及多个技术领域的综合性工作。这个源代码项目,"MyQQWeiboForClient3",提供了构建自定义微博应用的详细实现,帮助开发者深入理解Android应用开发,特别是针对社交媒体的...
《Android仿腾讯微博客户端开发详解》 在移动互联网飞速发展的今天,社交应用已经成为人们日常生活中不可或缺的一部分。作为中国主流的社交媒体平台,腾讯微博在移动端的重要性不言而喻。本篇将详细介绍如何在...
【Android腾讯微博客户端源码1.zip】是一个包含安卓平台上的腾讯微博客户端应用程序的源代码集合。这个源码库为开发者提供了深入理解腾讯微博Android应用设计和实现的宝贵资源。通过研究这个源码,我们可以学习到...
Android腾讯微博客户端源代码,大公司的Java程序,代码编写规范、注释丰富,可读性强,学习价值高。腾讯微博程序在Andorid程序中也算比较流行的程序,通过这个源代码你或许会学习到一些意想不到的Java Android编程...
【Android 腾讯微博客户端源码分析】 在Android平台上,腾讯微博客户端是一款非常流行的社交媒体应用,它允许用户发布和浏览微博,与朋友互动。这个源码提供了宝贵的参考资料,可以帮助开发者深入理解Android应用的...