在好例子网,分享、交流、成长!
您当前所在位置:首页Java 开发实例Android平台开发 → 微博安卓源码下载(社交分享)

微博安卓源码下载(社交分享)

Android平台开发

下载此实例
  • 开发语言:Java
  • 实例大小:0.48M
  • 下载次数:17
  • 浏览次数:210
  • 发布时间:2014-12-14
  • 实例类别:Android平台开发
  • 发 布 人:zhengqinglin
  • 文件格式:.rar
  • 所需积分:2
 相关标签: 社交 分享

实例介绍

【实例简介】口袋微博

【实例截图】

【核心代码】

package wyf.wpf;
import static wyf.wpf.ConstantUtil.IMAGESWITCHER_HEIGHT;
import static wyf.wpf.ConstantUtil.PHOTO_HEIGHT;
import static wyf.wpf.ConstantUtil.PHOTO_WIDTH;
import static wyf.wpf.ConstantUtil.SERVER_ADDRESS;
import static wyf.wpf.ConstantUtil.SERVER_PORT;

import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.opengl.Visibility;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.view.View;
import android.view.ViewGroup;
import android.view.animation.AnimationUtils;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.Gallery;
import android.widget.ImageSwitcher;
import android.widget.ImageView;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.ViewSwitcher;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemSelectedListener;

public class AlbumActivity extends Activity implements ViewSwitcher.ViewFactory{
	List<String []> photoInfoList = new ArrayList<String []>();
	Bitmap [] photoList;			//存放图片的数组
	Gallery gl = null;				//Gallery对象的引用
	ImageSwitcher is = null;		//ImageSwitcher对象的引用
	Spinner sp = null;				//Spinner对象的引用
	MyConnector mc = null;			//MyConnector对象的引用
	String xid = "";				//存放相册的ID
	String uno = "";				//存放用户ID
	String visitor = "";			//存放访问者的ID
	String pid = "";				//存放当前显示的照片ID
	int from = -1;					//启动该Activity的来源,0为MyAlbumListActivity,1为AlbumListActivity 
	List<String []> albumInfoList = new ArrayList<String []>();		//存放相册信息,id和相册名称
	//Spinner的Adapter
	BaseAdapter baSpinner = new BaseAdapter() {
		@Override
		public View getView(int position, View convertView, ViewGroup parent) {
			TextView tv = new TextView(AlbumActivity.this);
			tv.setTextSize(18.5f);
			tv.setTextColor(Color.DKGRAY);
			String [] sa = albumInfoList.get(position);
			tv.setText(sa[1]);
			return tv;
		}
		@Override
		public long getItemId(int position) {
			return 0;
		}
		@Override
		public Object getItem(int position) {
			return null;
		}
		@Override
		public int getCount() {
			return albumInfoList.size();
		}
	};
	//Gallery的Adapter
	BaseAdapter baGallery= new BaseAdapter() {
		@Override
		public View getView(int position, View convertView, ViewGroup parent) {
			ImageView iv = new ImageView(AlbumActivity.this);
			iv.setAdjustViewBounds(true);
			iv.setLayoutParams(new Gallery.LayoutParams(PHOTO_WIDTH, PHOTO_HEIGHT));
			iv.setMaxHeight(PHOTO_HEIGHT);						//设置ImageView显示的高度
			iv.setMaxWidth(PHOTO_WIDTH);						//设置ImageView显示的宽度	
			iv.setImageBitmap(photoList[position]);				//设置ImageView显示的内容
			return iv;
		}
		@Override
		public long getItemId(int position) {
			return 0;
		}
		@Override
		public Object getItem(int position) {
			return null;
		}
		@Override
		public int getCount() {
			if(photoList != null){
				return photoList.length;
			}
			else{
				return 0;
			}
		}
	};
	//点下Gallery中的图片后触发的事件监听器
	OnItemClickListener myListener = new OnItemClickListener() {	
		@Override
		public void onItemClick(AdapterView<?> parent, View v, int position,
				long id) {
			if(is != null){			//如果ImageSwitcher不为空
				Drawable d = new BitmapDrawable(photoList[position]);
				is.setImageDrawable(d);
			}
		}
	};
	Handler myHandler = new Handler(){
		@Override
		public void handleMessage(Message msg) {
			switch(msg.what){
			case 0:		
				gl.setAdapter(baGallery);
				is.setImageDrawable(new BitmapDrawable(photoList[0]));
				break;
			}
			super.handleMessage(msg);
		}
	};
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.album);					//设置当前屏幕
		Intent intent = getIntent();					//获取启动该Activity的Intent
		uno = intent.getStringExtra("uno");				//获得Extra字段的uno
		visitor = intent.getStringExtra("visitor");
		from = intent.getIntExtra("from", -1);		//获得Extra字段的from
		int position = intent.getIntExtra("position", 0);	//获得被选中的相册
		String [] albumInfoArray = intent.getStringArrayExtra("albumlist");	//获得相册信息数组
		xid = intent.getStringExtra("xid");			//获得被选中的相册编号
		albumInfoList = new ArrayList<String []>();
		for(String s:albumInfoArray){			//遍历信息数组
			String [] sa = s.split("\\|");
			albumInfoList.add(sa);				//构建相册信息列表
		}
		sp = (Spinner)findViewById(R.id.spAlbum);		//获得Spinner对象
		sp.setAdapter(baSpinner);				//设置Spinner对象的Adapter
		sp.setSelection(position);				//选中在前一个Activity中被选中的相册
		sp.setOnItemSelectedListener(new OnItemSelectedListener() {	//为Spinner添加监听器
			@Override
			public void onItemSelected(AdapterView<?> parent, View v,
					int position, long id) {
				xid = albumInfoList.get(position)[0];			//修改存储相册ID的成员变量
				getPhotoList();							//获得相册中的相片列表
			}
			@Override
			public void onNothingSelected(AdapterView<?> parent) {}
		});
		gl = (Gallery)findViewById(R.id.galleryPhoto);		//获得Gallery对象
		gl.setOnItemClickListener(myListener);				//设置Gallery的OnItemClickListener监听器
		is = (ImageSwitcher)findViewById(R.id.isPhoto);		//获得ImageSwitcher对象
		is.setFactory(this);								//设置ImageSwitcher的Factory
		is.setInAnimation(AnimationUtils.loadAnimation(this, android.R.anim.fade_in));	//设置ImageSwitcher的In动画
		is.setOutAnimation(AnimationUtils.loadAnimation(this, android.R.anim.fade_out));//设置ImageSwitcher的Out动画
		Button btnBack = (Button)findViewById(R.id.btnAlbumBack);		//获得返回按钮btnBack
		btnBack.setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View v) {
				switch(from){		//判断启动该Activity的来源
				case 0:			//有MyAlbumListActivity启动
					Intent intent1 = new Intent(AlbumActivity.this,FunctionTabActivity.class);
					intent1.putExtra("uno", uno);
					intent1.putExtra("tab", "tab5");
					startActivity(intent1);		
					finish();
					break;
				case 1:			//由AlbumListActivity启动
					Intent intent2 = new Intent(AlbumActivity.this,HomePageActivity.class);
					intent2.putExtra("uno", uno);
					intent2.putExtra("visitor", visitor);
					intent2.putExtra("tab", "tab2");
					startActivity(intent2);		
					finish();
					break;
				}
			}
		});
		Button btnDeletePhoto = (Button)findViewById(R.id.btnDeletePhoto);
		if(visitor != null){		//不是查看自己的相册
			btnDeletePhoto.setVisibility(View.GONE);		//如果不是自己的相册,隐藏删除按钮
		}
		btnDeletePhoto.setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View v) {
				new AlertDialog.Builder(AlbumActivity.this)
					.setTitle("提示")
					.setIcon(R.drawable.alert_icon)
					.setMessage("确认删除该照片?")
					.setPositiveButton(
						"确定",
						new DialogInterface.OnClickListener() {
							@Override
							public void onClick(DialogInterface dialog, int which) {
								int pos = gl.getSelectedItemPosition();
								pid = photoInfoList.get(pos)[0];
								deletePhoto();
							}
						})
					.setNegativeButton(
						"取消", 
						null)
					.show();
			}
		});
	}

	public void getPhotoList(){
		new Thread(){
			public void run(){
				Looper.prepare();
				try{
					mc = null;
					mc = new MyConnector(SERVER_ADDRESS, SERVER_PORT);
					mc.dout.writeUTF("<#GET_ALBUM#>" xid);
					int size = 0;		//获得相册长度
					size = mc.din.readInt();			//读取相册的长度
					if(size == 0){
						Toast.makeText(AlbumActivity.this, "该相册还未上传照片", Toast.LENGTH_LONG).show();
						Looper.loop();
						return;
					}
					photoInfoList = new ArrayList<String []>(size);
					photoList = new Bitmap[size];
					for(int i=0;i<size;i  ){			//循环获取图片数据
						String photoInfo = mc.din.readUTF();		//读取相片信息
						String [] sa = photoInfo.split("\\|");			//切割字符串
						photoInfoList.add(sa);				//将相片信息添加到列表中
						int photoLength = mc.din.readInt();		//读取相片长度
						byte [] buf = new byte[photoLength];		//创建相应长度的数组
						mc.din.read(buf);			//读入图片数据
						photoList[i] = BitmapFactory.decodeByteArray(buf, 0, photoLength);	//创建Bitmap
					}
					myHandler.sendEmptyMessage(0);
				}catch(Exception e){
					e.printStackTrace();
				}
			}
		}.start();
	}
	//方法:删除指定照片
	public void deletePhoto(){
		new Thread(){
			public void run(){
				Looper.prepare();
				try{
					if(mc ==null){
						mc = new MyConnector(SERVER_ADDRESS, SERVER_PORT);
					}
					String msg = "<#DELETE_PHOTO#>" pid;
					mc.dout.writeUTF(msg);
					String reply = mc.din.readUTF();		
					if(reply.equals("<#DELETE_PHOTO_SUCCESS#>")){	
						Toast.makeText(AlbumActivity.this, "照片删除成功!", Toast.LENGTH_LONG).show();
					}
					else {
						Toast.makeText(AlbumActivity.this, "删除失败,请重试!", Toast.LENGTH_LONG).show();
					}
					getPhotoList();
					Looper.loop();
				}catch(Exception e){
					e.printStackTrace();
				}
			}
		}.start();
	}
	@Override
	public View makeView() {
		ImageView iv = new ImageView(this);
		iv.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
		iv.setLayoutParams(new ImageSwitcher.LayoutParams(IMAGESWITCHER_HEIGHT,IMAGESWITCHER_HEIGHT));
		return iv;
	}
	@Override
	protected void onDestroy() {
		if(mc != null){
			mc.sayBye();
			mc = null;
		}
		super.onDestroy();
	}
}

标签: 社交 分享

实例下载地址

微博安卓源码下载(社交分享)

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警