您现在的位置是:网站首页> 编程资料编程资料

我也有微信朋友圈了 Android实现_MsSql_

2023-05-26 384人已围观

简介 我也有微信朋友圈了 Android实现_MsSql_

本文实例分享了一个简单的朋友圈程序,包含了朋友圈的列表实现,视频的录制、预览与上传,图片可选择拍照,供大家参考,具体内容如下

FriendsListActivity  代码如下

 public class FriendsListActivity extends BaseActivity implements OnRefreshListener, PostListener { private InteractionAdapter mAdapter; private PullToRefreshListView mRefreshListView; private View mFooter; private Context mContext; private Button btnToPost; protected int mPage = 0; private boolean isRefreshing = false; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.friends_list); mContext=getApplicationContext(); mAdapter = new InteractionAdapter(mContext); mAdapter.setListener(this); btnToPost=(Button) findViewById(R.id.btn_topost); mRefreshListView = (PullToRefreshListView) findViewById(R.id.friends_list); FriendsApi.getFriendsList(mContext, mCallBack); mRefreshListView.setOnRefreshListener(this); mFooter = LayoutInflater.from(mContext).inflate(R.layout.loading_footer, null); // mRefreshListView.getRefreshableView().addFooterView(mFooter); mRefreshListView.setAdapter(mAdapter); // mRefreshListView.setOnLastItemVisibleListener(mLastListener); // mRefreshListView.getRefreshableView().setDividerHeight(40); btnToPost.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { myPosts(); } }); } protected void myPosts() { new AlertDialog.Builder(this).setItems(new String[]{"图片","视频","文字"}, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Intent intent=new Intent(); switch (which) { case 0: intent.setClass(FriendsListActivity.this, CreatePostActivity.class); break; case 1: intent.setClass(FriendsListActivity.this, RecorderActivity.class); break; case 2: intent.setClass(FriendsListActivity.this, RecorderActivity.class); break; default: break; } startActivity(intent); } }).show(); } /** * 查看更多操作 */ @Override public void show(Interaction interaction) { } @Override public void delete(Interaction interaction) { // TODO Auto-generated method stub } @Override public void onRefresh(PullToRefreshBase refreshView) { if (!isRefreshing) { isRefreshing = true; mPage = 0; FriendsApi.getFriendsList(mContext, mCallBack); } } protected NetCallBack mCallBack = new NetCallBack() { public void friendslist(ArrayList friends) { Log.i("friends size>>>>",friends.size()+"-------------"); mAdapter.setInteractions(friends); // mRefreshListView.getLoadingLayoutProxy().setLastUpdatedLabel(null); mRefreshListView.onRefreshComplete(); isRefreshing = false; dismissLoading(); }; public void start() { showLoading(); }; public void failed(String message) { loadFailed(); }; }; @Override public void play(Interaction interaction) { Intent mIntent=new Intent(); mIntent.setClass(FriendsListActivity.this, RecorderPlayActivity.class); Bundle data = new Bundle(); data.putString("path", interaction.videoPath); mIntent.putExtras(data); startActivity(mIntent); } } 

布局文件 friends_list.xml

适配器 InteractionAdapter 对朋友圈列表进行数据填充

 public class InteractionAdapter extends BaseAdapter implements OnClickListener { private ArrayList interactions; private Context mContext; private FinalBitmap mFinal; private BitmapDisplayConfig config; private BitmapDisplayConfig imageConfig; private PostListener listener; public InteractionAdapter(Context context) { mContext = context; mFinal = FinalBitmap.create(mContext); Bitmap bitmap = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.user_avatar); config = new BitmapDisplayConfig(); config.setAnimationType(BitmapDisplayConfig.AnimationType.fadeIn); config.setLoadfailBitmap(bitmap); config.setLoadfailBitmap(bitmap); bitmap = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.image_failed); imageConfig = new BitmapDisplayConfig(); imageConfig.setAnimationType(BitmapDisplayConfig.AnimationType.fadeIn); imageConfig.setLoadfailBitmap(bitmap); imageConfig.setLoadfailBitmap(bitmap); } public void setListener(PostListener listener) { this.listener = listener; } public void setInteractions(ArrayList interactions) { this.interactions = interactions; notifyDataSetChanged(); } @Override public int getCount() { // TODO Auto-generated method stub return interactions == null ? 0 : interactions.size(); } @Override public Object getItem(int position) { // TODO Auto-generated method stub return interactions.get(position); } @Override public long getItemId(int position) { // TODO Auto-generated method stub return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub ViewHolder holder = null; if (convertView == null) { convertView = LayoutInflater.from(mContext).inflate(R.layout.friend_list_item, null); holder = new ViewHolder(); holder.avatar = (CircleImageView) convertView.findViewById(R.id.avatar); holder.content = (TextView) convertView.findViewById(R.id.content); holder.title = (TextView) convertView.findViewById(R.id.title); holder.subtitle = (TextView) convertView.findViewById(R.id.subtitle); holder.image = convertView.findViewById(R.id.image_layout); holder.image0 = (ImageView) convertView.findViewById(R.id.image0); holder.image1 = (ImageView) convertView.findViewById(R.id.image1); holder.image2 = (ImageView) convertView.findViewById(R.id.image2); holder.conments = (TextView) convertView.findViewById(R.id.conment_count); holder.praises = (TextView) convertView.findViewById(R.id.parise_count); holder.praised = (ImageView) convertView.findViewById(R.id.praise_icon); holder.more = (TextView) convertView.findViewById(R.id.more); holder.viewLayout=(LinearLayout) convertView.findViewById(R.id.view_layout); holder.surfaceView=(SurfaceView) convertView.findViewById(R.id.surface_view_result); holder.playButton=(ImageButton) convertView.findViewById(R.id.btn_play_result); holder.audioLayout=(FrameLayout) convertView.findViewById(R.id.audio_layout); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } Interaction interaction = interactions.get(position); if (TextUtils.isEmpty(interaction.avatar)) { holder.avatar.setImageBitmap(config.getLoadfailBitmap()); } else { mFinal.display(holder.avatar, interaction.avatar, config); } holder.title.setText(interaction.name); holder.subtitle.setText(interaction.subtitle); holder.content.setText(interaction.content); holder.conments.setText(String.valueOf(interaction.commentCount)); holder.praises.setText(String.valueOf(interaction.praiseCount)); int images = interaction.images == null ? 0 : interaction.images.size(); if (images > 0) { holder.image.setVisibility(View.VISIBLE); holder.audioLayout.setVisibility(View.GONE); holder.image.setOnClickListener(this); holder.image.setTag(interaction); if (images <= 1) { mFinal.display(holder.image0, interaction.images.get(0), imageConfig); holder.image1.setImageBitmap(null); holder.image2.setImageBitmap(null); } else if (images <= 2) { mFinal.display(holder.image0, interaction.images.get(0), imageConfig); mFinal.display(holder.image1, interaction.images.get(1), imageConfig); holder.image2.setImageBitmap(null); } else { mFinal.display(holder.image0, interaction.images.get(0), imageConfig); mFinal.display(holder.image1, interaction.images.get(1), imageConfig); mFinal.display(holder.image2, interaction.images.get(2), imageConfig); } } else if(interaction.videoPath!=null) { holder.image.setVisibility(View.GONE); holder.playButton.setBackgroundResource(R.drawable.play1pressed); holder.audioLayout.setVisibility(View.VISIBLE); holder.playButton.setTag(interaction); holder.playButton.setOnClickListener(this); holder.surfaceView.setTag(interaction); holder.surfaceView.setOnClickListener(this); }else{ holder.viewLayout.setVisibility(View.GONE); } holder.more.setTag(interaction); holder.more.setOnClickListener(this); return convertView; } private class ViewHolder { CircleImageView avatar; TextView title; TextView subtitle; TextView content; View image; ImageView image0; ImageView image1; ImageView image2; TextView conments; TextView praises; ImageView praised; View delete; TextView more; SurfaceView surfaceView; ImageButton playButton; FrameLayout audioLayout; LinearLayout viewLayout; } @Override public void onClick(View v) { int id = v.getId(); if (id == R.id.btn_play_result) { Interaction interaction = (Interaction) v.getTag(); }else if (id == R.id.surface_view_result) { if (this.listener != null) { this.listener.play((Interaction) v.getTag()); } }else if (id == R.id.more) { if (this.listener != null) { this.listener.show((Interaction) v.getTag()); } } else if (id == R.id.image_layout) { Intent intent = new Intent(mContext, MainActivity
                
                

-六神源码网