亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Android仿微信朋友圈點贊和評論功能

 更新時間:2018年06月02日 11:45:49   作者:Jeromer  
這篇文章主要為大家詳細介紹了Android仿微信朋友圈點贊和評論功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

最近在做朋友圈的項目,所以寫一個Android仿朋友圈點贊和評論功能Demo,代碼就是簡單實現(xiàn)了一下功能,沒有做優(yōu)化,湊合看。

圖文排列是用的RecyclerView實現(xiàn)的,彈窗效果是用的自定義的PopupWindow,點贊應(yīng)該是在本地請求數(shù)據(jù)庫,設(shè)置一個flag,獲取當前用戶的id后,帶著id向服務(wù)器post一個flag,評論就比較簡單了,也是獲取當前朋友id(或者昵稱),帶著內(nèi)容,向服務(wù)器post

貼代碼:

package com.example.lenovo.dianzandemo; 
 
import android.content.Context; 
import android.graphics.drawable.ColorDrawable; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.support.v7.widget.LinearLayoutManager; 
import android.support.v7.widget.RecyclerView; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.ImageView; 
import android.widget.PopupWindow; 
import android.widget.TextView; 
import android.widget.Toast; 
 
public class MainActivity extends AppCompatActivity { 
 
 private RecyclerView recyclerView; 
 private int[] pics; 
 private String[] descs; 
 public Context mContext; 
 
 @Override 
 protected void onCreate(Bundle savedInstanceState) { 
 super.onCreate(savedInstanceState); 
 setContentView(R.layout.activity_main); 
 mContext = getApplicationContext(); 
 pics = new int[]{R.mipmap.test1, R.mipmap.test5, R.mipmap.test6, R.mipmap.test7, R.mipmap.test8, R.mipmap.test9, R.mipmap.test10, R.mipmap.test12, R.mipmap.test13, R.mipmap.test14, R.mipmap.test1, R.mipmap.test5, R.mipmap.test6, R.mipmap.test7, R.mipmap.test8, R.mipmap.test9, R.mipmap.test10, R.mipmap.test12, R.mipmap.test13, R.mipmap.test14}; 
 descs = new String[]{ 
  "詩人承陳隋風流,浮靡相矜。", 
  "古今詩人眾矣,而杜子美為首,豈非以其流落饑寒,終身不用,而一飯未嘗忘君也歟?", 
  "老杜詩,凡一篇皆工拙相半,古人文章類如此。", 
  "王介甫只知巧語之為詩,而不知拙語亦詩也;山谷只知奇語之為詩,而不知常語亦詩也", 
  "子美詩奄有古今。學者能識國風、騷人之旨,然后知子美用意處", 
  "或問王荊公云:編四家詩,以杜甫為第一,李白為第四,豈白之才格詞致不逮甫也?", 
  "山谷云,老杜作詩,退之作文,無一字無來處,蓋后人讀書少,故謂韓、杜自作此語耳。", 
  "觀杜者不唯見其律,而有見其騷者焉;不唯見其騷,而有見其雅者焉", 
  "盛唐一味秀麗雄渾。杜則精粗、巨細、巧拙、新陳、險易、淺深、濃淡、肥瘦靡不畢具", 
  "大概杜有三難:極盛難繼,首創(chuàng)難工,遘衰難挽", 
  "詩人承陳隋風流,浮靡相矜。", 
  "古今詩人眾矣,而杜子美為首,豈非以其流落饑寒,終身不用,而一飯未嘗忘君也歟?", 
  "老杜詩,凡一篇皆工拙相半,古人文章類如此。", 
  "王介甫只知巧語之為詩,而不知拙語亦詩也;山谷只知奇語之為詩,而不知常語亦詩也", 
  "子美詩奄有古今。學者能識國風、騷人之旨,然后知子美用意處", 
  "或問王荊公云:編四家詩,以杜甫為第一,李白為第四,豈白之才格詞致不逮甫也?", 
  "山谷云,老杜作詩,退之作文,無一字無來處,蓋后人讀書少,故謂韓、杜自作此語耳。", 
  "觀杜者不唯見其律,而有見其騷者焉;不唯見其騷,而有見其雅者焉", 
  "盛唐一味秀麗雄渾。杜則精粗、巨細、巧拙、新陳、險易、淺深、濃淡、肥瘦靡不畢具", 
  "大概杜有三難:極盛難繼,首創(chuàng)難工,遘衰難挽" 
 }; 
 initView(); 
 } 
 
 private void initView() { 
 recyclerView = (RecyclerView) findViewById(R.id.recycler_view); 
 recyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false)); 
 
 RecyclerAdapter recyclerAdapter = new RecyclerAdapter(pics, descs, mContext); 
 recyclerView.setAdapter(recyclerAdapter); 
 } 
 
 
} 
 
 
class RecyclerAdapter extends RecyclerView.Adapter<MyViewHolder> { 
 
 
 private Context mContext; 
 private String[] descs; 
 private int[] pics; 
 private PopupWindow mPop; 
 
 public RecyclerAdapter(int[] pics, String[] descs, Context context) { 
 this.pics = pics; 
 this.descs = descs; 
 this.mContext = context; 
 } 
 
 @Override 
 public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
 View view = View.inflate(parent.getContext(), R.layout.item_layout, null); 
 MyViewHolder viewHolder = new MyViewHolder(view); 
 return viewHolder; 
 } 
 
 @Override 
 public void onBindViewHolder(final MyViewHolder holder, final int position) { 
 holder.desc.setText(descs[position]); 
 holder.icon.setImageResource(pics[position]); 
 holder.zan.setOnClickListener(new View.OnClickListener() { 
 
  @Override 
  public void onClick(View v) { 
//  Toast.makeText(mContext, position + "被點擊了", Toast.LENGTH_SHORT).show(); 
  int zanWidth = holder.zan.getWidth(); 
  int zanHeight = holder.zan.getHeight(); 
  View contentView = LayoutInflater.from(mContext).inflate(R.layout.pop_layout, null); 
  TextView popZan = (TextView) contentView.findViewById(R.id.pop_zan); 
  TextView popPinlun = (TextView) contentView.findViewById(R.id.pop_pinlun); 
  popZan.setOnClickListener(new View.OnClickListener() { 
   @Override 
   public void onClick(View v) { 
   Toast.makeText(mContext, "點贊", Toast.LENGTH_SHORT).show(); 
   } 
  }); 
  popPinlun.setOnClickListener(new View.OnClickListener() { 
   @Override 
   public void onClick(View v) { 
   Toast.makeText(mContext, "評論", Toast.LENGTH_SHORT).show(); 
   } 
  }); 
 
  if (mPop == null) { //優(yōu)化:當popwindow為空的時候才創(chuàng)建,不為空,直接復(fù)用 
   int width = zanWidth * 5; //設(shè)置PopupWindow的寬 
   int height = zanHeight; //設(shè)置PopupWindow的高 
   boolean focusable = true; //設(shè)置PopupWindow可獲取焦點 
   mPop = new PopupWindow(contentView, width, height, focusable); 
   //為PopupWindow設(shè)置背景,獲取焦點才能生效(谷歌官方要求) 
   mPop.setBackgroundDrawable(new ColorDrawable()); 
  } 
  View anchor = holder.zan; //指定PopupWindow在哪個控件下面顯示 
  int xoff = -zanWidth;//指定PopupWindow在x軸方向上的偏移量 
  int yoff = -zanHeight;//指定PopupWindow在Y軸方向上的偏移量 
  mPop.showAsDropDown(anchor, xoff, yoff); 
  } 
 }); 
 } 
 
 @Override 
 public int getItemCount() { 
 return pics.length; 
 } 
 
 
} 
 
class MyViewHolder extends RecyclerView.ViewHolder { 
 
 public TextView desc; 
 public ImageView icon; 
 public ImageView zan; 
 
 public MyViewHolder(View itemView) { 
 super(itemView); 
 desc = (TextView) itemView.findViewById(R.id.desc); 
 icon = (ImageView) itemView.findViewById(R.id.icon); 
 zan = (ImageView) itemView.findViewById(R.id.zan); 
 } 
} 

具體的彈窗位置和點贊按鈕,評論按鈕實現(xiàn)效果只用了吐司彈出,可以加自己的業(yè)務(wù)邏輯進去。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論