日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

android 微信点赞功能,Android 仿微信点赞和评论弹出框

發布時間:2023/12/14 Android 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 微信点赞功能,Android 仿微信点赞和评论弹出框 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

wjntekaqskfhwktpgpvzhp

1. 微信彈出框

微信朋友圈的點贊和評論功能,有2個組成部分:

左下角的“更多”按鈕;

點擊該按鈕后彈出的對話框;

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

2. 實際效果

本文將建一個 ListView,在其 Item 中簡單模仿微信的布局,然后著重實現彈出窗,忽略具體布局細節。具體效果如下:

3. 知識點

知識點清單:

4. 美工素材

由于 .apk 本質上是個壓縮包,我們可以通過解壓得到該 .apk 文件的圖片素材和布局文件,更多獲得素材的方法參見我的另一篇博文 如何獲得Android素材圖片。通過這種方式得到顏色、更多按鈕的樣式等素材,僅供學習之用,,請勿做侵犯版權之事。尊重知識版權既是大勢所趨,也是終將使每個開發者受益的事。

文件夾r里存放圖片

找到更多按鈕

5. 關鍵代碼

開發環境:Android Studio 1.3.2 for Mac + ADT 21 + JDK 1.8.0。

MainAcitivity.java

package com.example.cmm.helloworld;

import android.app.AlertDialog;

import android.content.Context;

import android.graphics.drawable.BitmapDrawable;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

import android.widget.BaseAdapter;

import android.widget.ImageView;

import android.widget.ListView;

import android.widget.PopupWindow;

import android.widget.TextView;

import java.util.ArrayList;

import java.util.List;

{

private PopupWindow mMorePopupWindow;

private int mShowMorePopupWindowWidth;

private int mShowMorePopupWindowHeight;

(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

ListView lv = (ListView) findViewById(R.id.listview);

lv.setAdapter(new MyAdapter(MainActivity.this, getData()));

}

private List getData() {

List data = new ArrayList<>();

data.add(new Data(R.drawable.xiaona, "薄荷栗", "我學過跆拳道,都給我跪下唱征服", "昨天"));

data.add(new Data(R.drawable.xueyan, "欣然", "走遍天涯海角,唯有我家風景最好,啊哈哈", "昨天"));

data.add(new Data(R.drawable.leishao, "陳磊_CL", "老子以后要當行長的,都來找我借錢吧,now", "昨天"));

data.add(new Data(R.drawable.yuhong, "永恒依然", "房子車子都到碗里來", "昨天"));

data.add(new Data(R.drawable.lanshan, "藍珊", "你們這群傻×,我笑而不語", "昨天"));

return data;

}

class MyAdapter extends BaseAdapter {

private List listdata;

private Context context;

public MyAdapter(Context context, List listdata) {

this.context = context;

this.listdata = listdata;

}

() {

return listdata.size();

}

@Override

public Object getItem(int arg0) {

return listdata.get(arg0);

}

(int arg0) {

return arg0;

}

@Override

public View getView(int position, View convertView, ViewGroup parent) {

LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

convertView = inflater.inflate(R.layout.listview_item, null, false);

// 帶賦值區域

ImageView ivPortrait = (ImageView) convertView.findViewById(R.id.portrait);

TextView tvNickName = (TextView) convertView.findViewById(R.id.nick_name);

TextView tvContent = (TextView) convertView.findViewById(R.id.content);

TextView tvCreatedAt = (TextView) convertView.findViewById(R.id.created_at);

ImageView moreBtn = (ImageView) convertView.findViewById(R.id.more_btn);

// 賦值

Data data = listdata.get(position);

ivPortrait.setImageResource(data.getPortraitId());

tvNickName.setText(data.getNickName());

tvContent.setText(data.getContent());

tvCreatedAt.setText(data.getCreatedAt());

// 更多按鈕的點擊事件

moreBtn.setOnClickListener(new View.OnClickListener() {

(View v) {

showMore(v);

}

});

return convertView;

}

/**

* 彈出點贊和評論框

*

*@param moreBtnView

*/

(View moreBtnView) {

if (mMorePopupWindow == null) {

LayoutInflater li = (LayoutInflater) MainActivity.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

View content = li.inflate(R.layout.layout_more, null, false);

mMorePopupWindow = new PopupWindow(content, ViewGroup.LayoutParams.WRAP_CONTENT,

ViewGroup.LayoutParams.WRAP_CONTENT);

mMorePopupWindow.setBackgroundDrawable(new BitmapDrawable());

mMorePopupWindow.setOutsideTouchable(true);

mMorePopupWindow.setTouchable(true);

content.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);

mShowMorePopupWindowWidth = content.getMeasuredWidth();

mShowMorePopupWindowHeight = content.getMeasuredHeight();

View parent = mMorePopupWindow.getContentView();

TextView like = (TextView) parent.findViewById(R.id.like);

TextView comment = (TextView) parent.findViewById(R.id.comment);

// 點贊的監聽器

like.setOnClickListener(new View.OnClickListener() {

(View v) {

final AlertDialog.Builder alert = new AlertDialog.Builder(MainActivity.this);

alert.setTitle("點贊");

alert.setNegativeButton("取消", null);

alert.show();

}

});

// 評論的監聽器

comment.setOnClickListener(new View.OnClickListener() {

(View v) {

final AlertDialog.Builder alert = new AlertDialog.Builder(MainActivity.this);

alert.setTitle("評論");

alert.setNegativeButton("取消", null);

alert.show();

}

});

}

if (mMorePopupWindow.isShowing()) {

mMorePopupWindow.dismiss();

} else {

int heightMoreBtnView = moreBtnView.getHeight();

mMorePopupWindow.showAsDropDown(moreBtnView, -mShowMorePopupWindowWidth,

-(mShowMorePopupWindowHeight + heightMoreBtnView) / 2);

}

}

}

class Data {

String nickName; String createdAt; (int portraitId, String nickName, String content, String createdAt) {

this.portraitId = portraitId;

this.nickName = nickName;

this.content = content;

this.createdAt = createdAt;

}

() {

return portraitId;

}

public String getNickName() {

return nickName;

}

public String getContent() {

return content;

}

public String getCreatedAt() {

return createdAt;

}

}

}

6. 感謝

本文中 listview 的布局改編自 ,感謝該作者的分享。

如需完整工程,請留下郵箱。

總結

以上是生活随笔為你收集整理的android 微信点赞功能,Android 仿微信点赞和评论弹出框的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。