基本信息
源码名称:微博安卓源码下载(社交分享)
源码大小:0.48M
文件格式:.rar
开发语言:Java
更新时间:2014-12-14
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元×
微信扫码支付:2 元
×
请留下您的邮箱,我们将在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();
}
}