Android仿微信朋友圈2自定义点赞评论弹框
Android仿微信朋友圈点赞评论弹框自定义
最近在做类似微信朋友圈点赞评论的功能,有个点赞评论弹框交互,感觉效果很好。点击评论按钮弹框从按钮左边弹出,遇到了3个问题:弹出动画不对、弹框布局没有适配、弹出的位置显示不对。
解决方案
1. 弹出动画首先,我们需要定义一个弹出动画。我们可以使用 `ObjectAnimator` 来实现这个效果。
```java// 点赞评论按钮点击事件public void onCommentClick(View view) {
// 定义弹出动画 ObjectAnimator animator = ObjectAnimator.ofFloat(view, "translationX",0f);
animator.setDuration(200); // 动画持续时间 animator.start();
}
```
在上面的代码中,我们定义了一个 `ObjectAnimator`,它会将 `view` 的 `translationX` 属性从0f 变为0f,这样就实现了一个向左弹出的动画效果。
2. 弹框布局接下来,我们需要定义弹框的布局。我们可以使用 `LinearLayout` 或者 `RelativeLayout` 来实现这个效果。
```xml
android:layout_height="wrap_content" android:orientation="vertical"> android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="16sp" android:textStyle="bold" /> android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请输入点赞评论..." /> android:layout_height="wrap_content" android:orientation="horizontal">
```
在上面的代码中,我们定义了一个 `LinearLayout`,它包含了弹框的标题、点赞评论内容和弹框按钮。
3. 弹出的位置显示不对最后,我们需要将弹框的位置设置为从按钮左边弹出。我们可以使用 `WindowManager` 来实现这个效果。
```java// 点赞评论按钮点击事件public void onCommentClick(View view) {
// 定义弹出动画 ObjectAnimator animator = ObjectAnimator.ofFloat(view, "translationX",0f);
animator.setDuration(200); // 动画持续时间 animator.start();
// 获取窗口管理器 WindowManager windowManager = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
// 创建弹框视图 View popupView = LayoutInflater.from(this).inflate(R.layout.comment_popup, null);
// 设置弹框位置 WindowManager.LayoutParams layoutParams = new WindowManager.LayoutParams();
layoutParams.type = WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
layoutParams.width =300; // 弹框宽度 layoutParams.height =200; // 弹框高度 layoutParams.x = view.getX(); // 弹框左边距 layoutParams.y = view.getY() + view.getHeight(); // 弹框顶部距 // 显示弹框 windowManager.addView(popupView, layoutParams);
}
```
在上面的代码中,我们定义了一个 `WindowManager`,它会将弹框的位置设置为从按钮左边弹出。
总结
通过以上步骤,我们可以实现一个类似微信朋友圈点赞评论的功能。点击评论按钮弹框从按钮左边弹出,效果很好。