- 浏览: 276103 次
- 性别:
- 来自: 成都
博客专栏
-
Android腾讯微博客户...
浏览量:95827
文章分类
最新评论
-
依旧如风:
u012209919 写道一按“添加用户”就出错了,
Android腾讯微薄客户端开发十五:终结篇(分享源代码) -
bn922:
wxw1111wang 写道楼主黑屏怎么解决啊?急求你看看是不 ...
利用ffmpeg和SDL实现一个跨android版本的音视频播放器 -
wxw1111wang:
楼主黑屏怎么解决啊?急求
利用ffmpeg和SDL实现一个跨android版本的音视频播放器 -
lwbao28:
为什么下载下来解压后没有后缀名,都不知道怎么打开。
利用ffmpeg和SDL实现一个跨android版本的音视频播放器 -
璇儿0227:
为什么打开后页面显示不出来,而且没法添加账户?代码也没有显示错 ...
Android腾讯微薄客户端开发十五:终结篇(分享源代码)
点击听众,显示博主的粉丝列表,点击列表中的粉丝,显示此粉丝详情
public class FansActivity extends ListActivity implements OnItemClickListener{ private DataHelper dataHelper; private UserInfo user; private MyWeiboSync weibo; private Handler handler; private AsyncImageLoader asyncImageLoader; private FansThread thread; private ListView listView; private ProgressDialog progressDialog; private JSONArray array; private FansAdapter 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.fans); setUpViews();//设置view setUpListeners();//设置listenter asyncImageLoader = new AsyncImageLoader(); dataHelper = new DataHelper(FansActivity.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(FansActivity.this);// 生成一个进度条 progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); progressDialog.setTitle("请稍等"); progressDialog.setMessage("正在读取数据中!"); handler = new FansHandler(); thread = new FansThread(); thread.start();//开启一个线程获取数据 progressDialog.show(); } private void setUpViews(){ listView = getListView(); top_panel = (View)findViewById(R.id.fans_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 FansThread extends Thread { @Override public void run() { String jsonStr = weibo.getFans(weibo.getAccessTokenKey(), weibo.getAccessTokenSecrect(), 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 FansHandler extends Handler { @Override public void handleMessage(Message msg){ adapter = new FansAdapter(FansActivity.this, array); listView.setAdapter(adapter); progressDialog.dismiss();// 关闭进度条 } } class FansAdapter extends BaseAdapter { private Context context; private LayoutInflater inflater; private JSONArray array; public FansAdapter(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(); FansViewHolder viewHolder = new FansViewHolder(); JSONObject data = (JSONObject)array.opt(position); convertView = inflater.inflate(R.layout.fans_list_item, null); viewHolder.fans_headicon = (ImageView) convertView.findViewById(R.id.fans_headicon); viewHolder.fans_nick = (TextView) convertView.findViewById(R.id.fans_nick); viewHolder.fans_name = (TextView) convertView.findViewById(R.id.fans_name); Drawable cachedImage = null; if(data!=null){ try { convertView.setTag(data.get("name")); viewHolder.fans_nick.setText(data.getString("nick")); viewHolder.fans_name.setText("@"+data.getString("name")); //异步加载图片 cachedImage = asyncImageLoader.loadDrawable(data.getString("head")+"/100",viewHolder.fans_headicon, new ImageCallback(){ @Override public void imageLoaded(Drawable imageDrawable,ImageView imageView, String imageUrl) { imageView.setImageDrawable(imageDrawable); } }); if (cachedImage == null) { viewHolder.fans_headicon.setImageResource(R.drawable.icon); } } catch (JSONException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } } return convertView; } } static class FansViewHolder { private ImageView fans_headicon; private TextView fans_nick; private TextView fans_name; } @Override public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3){ Intent intent = new Intent(FansActivity.this,UserInfoActivity.class); try { JSONObject fansInfo = (JSONObject)array.opt(position); JSONArray tweets = fansInfo.getJSONArray("tweet"); JSONObject tweet = null; if(tweets!=null&&tweets.length()>0){ tweet = (JSONObject)tweets.opt(0); intent.putExtra("origtext", tweet.getString("text")); intent.putExtra("timestamp", TimeUtil.getStandardTime(tweet.getLong("timestamp"))); } intent.putExtra("name", fansInfo.getString("name")); intent.putExtra("nick", fansInfo.getString("nick")); } catch (JSONException e) { e.printStackTrace(); } startActivity(intent);//跳转到用户信息界面 } }
<?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/fans_top" layout="@layout/top_panel" android:layout_alignParentTop="true"/> <ListView android:id="@id/android:list" android:layout_below="@id/fans_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/fans_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/fans_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/fans_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/fans_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/fans_name" android:layout_marginLeft="6.0dip" android:layout_below="@id/fans_nick" android:textColor="#ff000000" android:layout_width="wrap_content" android:layout_height="32.0dip" android:textSize="8.0sp" android:layout_alignParentLeft="true"/> </RelativeLayout> </LinearLayout>
评论
2 楼
helloandroid
2011-07-31
qianye 写道
楼主能否发个完整的项目????很期待。
今天晚上我会整理好发布上来的,请关注
1 楼
qianye
2011-07-31
楼主能否发个完整的项目????很期待。
发表评论
-
Android腾讯微薄客户端开发十五:终结篇(分享源代码)
2011-08-01 19:38 23105【有问题的同学请先仔 ... -
Android腾讯微薄客户端开发十四:首页menu菜单
2011-08-01 19:10 4739覆写onCreateOptionsMenu方法 @Over ... -
Android腾讯微薄客户端开发十三:提及篇(与我有关的微博)
2011-07-31 18:53 3163public class ReferActivity ext ... -
Android腾讯微薄客户端开发十二:博主的偶像
2011-07-31 18:34 2628点击收听,显示此博主的偶像列表,点击列表,将显示偶像的详情界 ... -
Android腾讯微薄客户端开发十:博主广播篇
2011-07-31 17:59 2492点击广播,显示此博主所发表的所有微博 public cl ... -
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 11219老规矩,先上图 这张图片左边部分和右边部分还是有很大的不同,不 ... -
Android腾讯微博客户端开发四:微博发送篇(QQ表情,@搜索)
2011-07-25 00:55 6222凌晨发帖不容易啊, 有一个问题,谁做过android的自定义 ... -
Android腾讯微博客户端开发三:多账号管理的实现
2011-07-22 19:41 7683先看看效果。。 列表中的账号是保存在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平台的应用程序开发项目,它提供了全面的功能,与腾讯微博服务进行交互。源码的可用性使得开发者能够深入理解微博客户端的内部工作原理,学习如何实现各种社交网络功能,...
在Android应用开发中,腾讯微博客户端的构建是一个典型的案例,涉及到许多高级技术和设计模式。本篇文章将聚焦于如何利用FootView来实现ListView的滑动动态效果,这在提供用户友好的交互体验上至关重要。 首先,...
通过对"android 腾讯微博客户端"源代码的深入学习,开发者不仅能掌握Android应用开发的基础知识,还能了解到如何与第三方服务集成,以及实现一个完整的社交应用。这对于提升Android开发技能和理解实际项目开发流程...
【Android腾讯微博客户端源码1.zip】是一个包含安卓平台上的腾讯微博客户端应用程序的源代码集合。这个源码库为开发者提供了深入理解腾讯微博Android应用设计和实现的宝贵资源。通过研究这个源码,我们可以学习到...
《Android仿腾讯微博客户端开发详解》 在移动互联网飞速发展的今天,社交应用已经成为人们日常生活中不可或缺的一部分。作为中国主流的社交媒体平台,腾讯微博在移动端的重要性不言而喻。本篇将详细介绍如何在...
Android腾讯微博客户端源代码,大公司的Java程序,代码编写规范、注释丰富,可读性强,学习价值高。腾讯微博程序在Andorid程序中也算比较流行的程序,通过这个源代码你或许会学习到一些意想不到的Java Android编程...
【Android 腾讯微博客户端源码分析】 在Android平台上,腾讯微博客户端是一款非常流行的社交媒体应用,它允许用户发布和浏览微博,与朋友互动。这个源码提供了宝贵的参考资料,可以帮助开发者深入理解Android应用的...