国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 系統(tǒng) > Android > 正文

Android仿微信朋友圈點(diǎn)贊和評(píng)論功能

2019-12-12 00:49:32
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

最近在做朋友圈的項(xiàng)目,所以寫(xiě)一個(gè)Android仿朋友圈點(diǎn)贊和評(píng)論功能Demo,代碼就是簡(jiǎn)單實(shí)現(xiàn)了一下功能,沒(méi)有做優(yōu)化,湊合看

圖文排列是用的RecyclerView實(shí)現(xiàn)的,彈窗效果是用的自定義的PopupWindow,點(diǎn)贊應(yīng)該是在本地請(qǐng)求數(shù)據(jù)庫(kù),設(shè)置一個(gè)flag,獲取當(dāng)前用戶的id后,帶著id向服務(wù)器post一個(gè)flag,評(píng)論就比較簡(jiǎn)單了,也是獲取當(dāng)前朋友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[]{         "詩(shī)人承陳隋風(fēng)流,浮靡相矜。",         "古今詩(shī)人眾矣,而杜子美為首,豈非以其流落饑寒,終身不用,而一飯未嘗忘君也歟?",         "老杜詩(shī),凡一篇皆工拙相半,古人文章類如此。",         "王介甫只知巧語(yǔ)之為詩(shī),而不知拙語(yǔ)亦詩(shī)也;山谷只知奇語(yǔ)之為詩(shī),而不知常語(yǔ)亦詩(shī)也",         "子美詩(shī)奄有古今。學(xué)者能識(shí)國(guó)風(fēng)、騷人之旨,然后知子美用意處",         "或問(wèn)王荊公云:編四家詩(shī),以杜甫為第一,李白為第四,豈白之才格詞致不逮甫也?",         "山谷云,老杜作詩(shī),退之作文,無(wú)一字無(wú)來(lái)處,蓋后人讀書(shū)少,故謂韓、杜自作此語(yǔ)耳。",         "觀杜者不唯見(jiàn)其律,而有見(jiàn)其騷者焉;不唯見(jiàn)其騷,而有見(jiàn)其雅者焉",         "盛唐一味秀麗雄渾。杜則精粗、巨細(xì)、巧拙、新陳、險(xiǎn)易、淺深、濃淡、肥瘦靡不畢具",         "大概杜有三難:極盛難繼,首創(chuàng)難工,遘衰難挽",         "詩(shī)人承陳隋風(fēng)流,浮靡相矜。",         "古今詩(shī)人眾矣,而杜子美為首,豈非以其流落饑寒,終身不用,而一飯未嘗忘君也歟?",         "老杜詩(shī),凡一篇皆工拙相半,古人文章類如此。",         "王介甫只知巧語(yǔ)之為詩(shī),而不知拙語(yǔ)亦詩(shī)也;山谷只知奇語(yǔ)之為詩(shī),而不知常語(yǔ)亦詩(shī)也",         "子美詩(shī)奄有古今。學(xué)者能識(shí)國(guó)風(fēng)、騷人之旨,然后知子美用意處",         "或問(wèn)王荊公云:編四家詩(shī),以杜甫為第一,李白為第四,豈白之才格詞致不逮甫也?",         "山谷云,老杜作詩(shī),退之作文,無(wú)一字無(wú)來(lái)處,蓋后人讀書(shū)少,故謂韓、杜自作此語(yǔ)耳。",         "觀杜者不唯見(jiàn)其律,而有見(jiàn)其騷者焉;不唯見(jiàn)其騷,而有見(jiàn)其雅者焉",         "盛唐一味秀麗雄渾。杜則精粗、巨細(xì)、巧拙、新陳、險(xiǎn)易、淺深、濃淡、肥瘦靡不畢具",         "大概杜有三難:極盛難繼,首創(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 + "被點(diǎn)擊了", 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, "點(diǎn)贊", Toast.LENGTH_SHORT).show();           }         });         popPinlun.setOnClickListener(new View.OnClickListener() {           @Override           public void onClick(View v) {             Toast.makeText(mContext, "評(píng)論", Toast.LENGTH_SHORT).show();           }         });          if (mPop == null) { //優(yōu)化:當(dāng)popwindow為空的時(shí)候才創(chuàng)建,不為空,直接復(fù)用           int width = zanWidth * 5; //設(shè)置PopupWindow的寬           int height = zanHeight; //設(shè)置PopupWindow的高           boolean focusable = true; //設(shè)置PopupWindow可獲取焦點(diǎn)           mPop = new PopupWindow(contentView, width, height, focusable);           //為PopupWindow設(shè)置背景,獲取焦點(diǎn)才能生效(谷歌官方要求)           mPop.setBackgroundDrawable(new ColorDrawable());         }         View anchor = holder.zan; //指定PopupWindow在哪個(gè)控件下面顯示         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);   } } 

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

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 绥德县| 滦平县| 喜德县| 石河子市| 阜阳市| 平山县| 凤山县| 巴彦淖尔市| 遂溪县| 万宁市| 炎陵县| 浦城县| 河津市| 时尚| 小金县| 凤阳县| 从江县| 福清市| 岢岚县| 呈贡县| 珲春市| 湛江市| 靖安县| 筠连县| 微博| 抚顺县| 桐城市| 神农架林区| 乐清市| 汝阳县| 龙南县| 兴安县| 基隆市| 西青区| 凯里市| 双城市| 柘城县| 阳曲县| 龙川县| 墨竹工卡县| 双牌县|