激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Android - Android仿微信朋友圈點贊和評論功能

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

2022-02-28 15:18Jeromer Android

這篇文章主要為大家詳細介紹了Android仿微信朋友圈點贊和評論功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

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

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

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

貼代碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
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)建,不為空,直接復用
   int width = zanWidth * 5; //設置PopupWindow的寬
   int height = zanHeight; //設置PopupWindow的高
   boolean focusable = true; //設置PopupWindow可獲取焦點
   mPop = new PopupWindow(contentView, width, height, focusable);
   //為PopupWindow設置背景,獲取焦點才能生效(谷歌官方要求)
   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è)務邏輯進去。

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

原文鏈接:https://blog.csdn.net/vxwjf/article/details/51907957

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲精品7777xxxx青睐 | 中国美女一级黄色大片 | 午夜爽爽爽男女免费观看hd | 成人在线免费观看视频 | 久久国产免费视频 | 国内精品久久久久久久星辰影视 | a视频在线播放 | 日韩在线激情 | 成人国产视频在线观看 | 久久久久国产视频 | 亚洲综合无码一区二区 | 国产精品一区二区视频 | 国产精选在线 | www亚洲免费 | 欧美一级毛片美99毛片 | 午夜精品福利视频 | 久久综合婷婷香五月 | 国产精品成人一区二区三区电影毛片 | 999久久国精品免费观看网站 | 日本成人一二三区 | 久久精品一二三区白丝高潮 | 久久精品亚洲欧美日韩精品中文字幕 | 免费a视频| 在线a亚洲视频播放在线观看 | 久久成人综合网 | 男人午夜视频 | 久久亚色 | 免费国产一区二区视频 | 91精品国产乱码久久久久 | 亚洲精久久| 日本高清无遮挡 | 毛片免费一区二区三区 | 高清一区二区在线观看 | av电影在线免费观看 | 国产羞羞网站 | 国产精品99精品 | 99国语露脸久久精品国产ktv | 色视频在线播放 | 亚洲福利在线视频 | 日本精品一区二区 | 免费h片 |