广告
返回顶部
首页 > 资讯 > 移动开发 >Android实现表情功能
  • 410
分享到

Android实现表情功能

2024-04-02 19:04:59 410人浏览 独家记忆
摘要

本文实例为大家分享了Android实现表情功能的具体代码,供大家参考,具体内容如下 Dialog实现表情评论功能核心问题: 1、如何得到键盘弹起和隐藏状态2、在于表情和键盘切换时候

本文实例为大家分享了Android实现表情功能的具体代码,供大家参考,具体内容如下

Dialog实现表情评论功能核心问题:

1、如何得到键盘弹起和隐藏状态
2、在于表情和键盘切换时候,防止Dialog抖动

问题1:由于无法获取键盘弹起状态,但是键盘弹起,View尺寸变化,同时被onSizeChanged()调用。

View 源码


    protected void onSizeChanged(int w, int h, int oldw, int oldh) {
}

我们可以通过继承View 重写 onSizeChanged方法得到View尺寸变化来判断键盘是否弹起:

int minKeyboardHeight = dm.heightPixels / 4; (屏幕高度1/4)

当 oldh - h > minKeyboardHeight时,键盘弹起

当 h - oldh > minKeyboardHeight时,键盘隐藏

如此即可获取键盘的弹起、隐藏状态 和键盘高度 inputHeight(同时也是表情布局高度) 。

问题2:表情和键盘切换时候,防止Dialog抖动

表情和键盘切换时候,由于DialogViewHeight 高度变化导致的Dialog高度重新计算高度而产生抖动;那么当表情和键盘切换时DialogViewHeight 中间 DialogViewHeight 高度固定不变导致界面抖动。

键盘——>表情:因为当键盘弹起时候,我们已经知道键盘的高度,那么当切换表情时候:(键盘高度==表情高度)

①、 高度 DialogViewHeight = CommentView高度 + inputHeight(键盘高度)。锁高重点在于设置 DialogView固定值,同时设置 layoutParams.weight = 0F

②、然后设置表情布局 VISIBLE 和 隐藏键盘

③、释放锁高。释放锁高重点在于设置 DialogViewHeight = LinearLayout.LayoutParams.MATCH_PARENT,同时设置  layoutParams.weight = 1.0F

代码:

//①锁高:
LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams) CommentView.getLayoutParams();
layoutParams.height = DialogView.getHeight();
layoutParams.weight = 0.0f;
llContentView.setLayoutParams(layoutParams);
 
//②表情布局显示
EmotionView.setVisibility(View.VISIBLE)
//隐藏键盘
 
//③释放高度
LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams) DialogView.getLayoutParams();
layoutParams.height = LinearLayout.LayoutParams.MATCH_PARENT;
layoutParams.weight = 1.0f;
llContentView.setLayoutParams(layoutParams);

表情——>键盘:表情切换键盘其实跟键盘切换表情一样,分三步

①、 锁高度:锁高度 DialogViewHeight = CommentView高度 + inputHeight(键盘高度)。锁高重点在于设置 DialogView固定值,同时设置 layoutParams.weight = 0F

②、然后设置表情布局 GoNE 和 弹起键盘

③、释放锁高。释放锁高重点在于设置 DialogViewHeight = LinearLayout.LayoutParams.MATCH_PARENT,同时设置  layoutParams.weight = 1.0F

//①锁高:
LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams) CommentView.getLayoutParams();
layoutParams.height = DialogView.getHeight();
layoutParams.weight = 0.0f;
llContentView.setLayoutParams(layoutParams);
 
//②表情布局隐藏
EmotionView.setVisibility(View.GONE)
//显示键盘
 
 
//③释放高度
LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams) DialogView.getLayoutParams();
layoutParams.height = LinearLayout.LayoutParams.MATCH_PARENT;
layoutParams.weight = 1.0f;
llContentView.setLayoutParams(layoutParams);

总结:

1、onSizeChanged方法,重点在于获取键盘的高度。方便后面表情布局高度设置。

2、表情切换主要在于对布局进行锁高和释放高度,来实现表情、键盘切换时候,Dialog布局高度是没有变化。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: Android实现表情功能

本文链接: https://www.lsjlt.com/news/144720.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android实现表情功能
    本文实例为大家分享了Android实现表情功能的具体代码,供大家参考,具体内容如下 Dialog实现表情评论功能核心问题: 1、如何得到键盘弹起和隐藏状态2、在于表情和键盘切换时候...
    99+
    2022-11-13
  • Android实现秒表功能
    本文实例为大家分享了Android实现秒表功能的具体代码,供大家参考,具体内容如下 设计完成一个秒表,具备启停功能,正确使用工作线程完成界面刷新 activity_main.xml...
    99+
    2022-11-13
  • Android实现APP秒表功能
    本文实例为大家分享了Android实现APP秒表功能的具体代码,供大家参考,具体内容如下 这几天一直在看安卓,也正好赶上老师布置的作业,所以就做了一个秒表。自己参考了一下别人的图标,...
    99+
    2022-11-13
  • 完整的Android表情功能处理方案
    Android表情功能处理方案概述 1.原理和实现思路 2.表情图片显示 3.表情面板 4.表情的输入框插入和删除 5.表情添加脚本 Android中表情功能,一般都不是用Im...
    99+
    2022-06-06
    Android
  • Android实现简易秒表功能
    本文实例为大家分享了Android实现秒表功能的具体代码,供大家参考,具体内容如下 今天为了给师弟们讲安卓,花了10分钟写了一个简易的秒表app,现贴出代码,供各位刚入门以及还未入...
    99+
    2022-11-13
  • Android RecyclerView实现下拉列表功能
    现在市面上的很多的应用,都带有下拉列表的功能,将所有选项都放在下拉列表中,当用户点击选择的时候,弹出所有的选项,用户选择一项后,下拉列表自动隐藏,很多下拉列表都是用ListVi...
    99+
    2022-06-06
    列表 下拉列表 recyclerview Android
  • Android ListView实现简单列表功能
    ListView如何实现简单列表,供大家参考,具体内容如下效果图:啥也没干的ListView张这样:fry.Activity01package fry;import com.example.ListView.R;import android...
    99+
    2023-05-30
    listview 列表 roi
  • Android怎么实现APP秒表功能
    要实现一个APP秒表功能,可以按照以下步骤进行操作:1. 创建一个新的Android项目。在Android Studio中,选择“F...
    99+
    2023-08-17
    Android
  • Android组件实现列表选择框功能
    android提供的列表选择框(Spinner)相当于web端用户注册时的选择下拉框,比如注册候选择省份城市等。如下图便是一个列表选择框 下拉列表的列表选择项能够通过xml文...
    99+
    2022-06-06
    列表 选择 Android
  • vue 实现列表跳转至详情且能添加至购物车功能
    目录效果概述:具体效果:实现后效果图:大致代码思路main.js 代码移动端rem适配代码解决跨域问题,在vue.config.js里添加代码实现路由跳转页代码app根组件代码效果列...
    99+
    2022-11-13
    vue添加购物车 vue列表跳转
  • Android实现分享功能
    Android应用中能很方便的完成这些功能,很多的应用中都有“分享”功能?如何分享呢?下面给大家说说看。 最近有人问到Android分享功能用那个比较好,使用Andr...
    99+
    2022-06-06
    Android
  • Android实现截屏功能
    导言 目前截屏的方法很多,root不适用,要么其他方法就是有局限性,而其中官方给出的方案最好—MediaProjection 介绍 Android 5.0以后开放的录屏API,取视频...
    99+
    2022-11-12
  • Android实现扫码功能
    本文实例为大家分享了Android实现扫码功能的具体代码,供大家参考,具体内容如下 1、引入 implementation 'com.journeyapps:zxing-and...
    99+
    2022-11-12
  • Android怎么实现二级列表购物车功能
    小编给大家分享一下Android怎么实现二级列表购物车功能,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!具体内容如下MainActivity:package com.baway.twoshopcar;import...
    99+
    2023-05-30
    android
  • Android如何实现简单的城市列表功能
    小编给大家分享一下Android如何实现简单的城市列表功能,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!具体内容如下步骤: 在app的gradle里面添加依赖:com.github.andyoom:citypicker:v...
    99+
    2023-05-30
    android
  • vue3+three.js实现疫情可视化功能
    目录前言项目描述项目目标api说明数据使用项目开始安装依赖首页球体控制球体创建病毒数值增加动画表格展示横向柱状图中国地图历史分析表格下载结语前言 自成都九月份以来疫情原因被封了一两周...
    99+
    2022-11-13
  • java实现秒表功能
    利用javax.swing.Timer类设计并实现一个模拟秒表功能的应用程序。程序中显示不断递增的时间,同时包含允许用户启动和终止计时功能的代码,以及一个可将时间复位为0的按钮。 i...
    99+
    2022-11-13
  • C++实现秒表功能
    本文实例为大家分享了C++实现秒表功能的具体代码,供大家参考,具体内容如下 抽象出CLOCK类来制作一个电子秒表,能够自动跳转 代码中有些陌生的库函数,顺便介绍一下: 1.syste...
    99+
    2022-11-13
  • Android实现QQ登录功能
    QQ登录是一个非常简单的一个第三方应用,现在,我们就来实现一个QQ登录首先下载两个jar包   这里上传不了jar包,所以可以到我的github中下载工程中libs中的两个jar包网址:https://github.co...
    99+
    2023-05-30
    android qq登录 roi
  • android实现扫码枪功能
    扫码枪扫码效果等同于键盘录入,会回调dispatchKeyEvent键盘按下事件。 开发环境:有线扫码枪,支持二维码 代码 1. 接收数据 @Override ...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作