返回顶部
首页 > 资讯 > 精选 >如何在Android利用View模仿一个微信的LetterView效果
  • 121
分享到

如何在Android利用View模仿一个微信的LetterView效果

androidviewletterview 2023-05-31 10:05:49 121人浏览 薄情痞子
摘要

如何在Android利用View模仿一个微信的LetterView效果?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。具体代码如下所示: public class LetterV

如何在Android利用View模仿一个微信的LetterView效果?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

具体代码如下所示:

 public class LetterView extends View {  private String TAG = LetterView.class.getSimpleName();  //A,B,C....Z,#  public List<String> letters;  private Paint mPaint;  private int selectPosition = -1;  private TextView mLetter;  public void setmLetter(TextView mLetter) {    this.mLetter = mLetter;  }  public LetterView(Context context) {    this(context,null);  }  public LetterView(Context context, AttributeSet attrs) {    this(context, attrs,0);  }  public LetterView(Context context, AttributeSet attrs, int defStyleAttr) {    super(context, attrs, defStyleAttr);    //生产字母    letters = new ArrayList<>();    for (int i = 65; i < 91; i++) {      letters.add(String.fORMat(Locale.CHINA,"%c",i));      Log.e(TAG, "LetterView: "+ String.format(Locale.CHINA,"%c",i));    }    letters.add("#");//追加一个#    //初始化画笔    mPaint = new Paint();    mPaint.setAntiAlias(true);    mPaint.setColor(Color.BLUE);    mPaint.setTextSize(30);  }  @Override  protected void onDraw(canvas canvas) {    super.onDraw(canvas);        int width = getMeasuredWidth();    int height = getMeasuredHeight();    //测量字的宽度    int size = letters.size();    for (int i = 0; i < size; i++) {      float textWidth = mPaint.measureText(letters.get(i));      int singleHeight = height / size;      if (selectPosition == i){//被选中的        mPaint.setColor(Color.RED);      }else{        mPaint.setColor(Color.BLUE);      }      canvas.drawText(letters.get(i),(width - textWidth)/2, singleHeight * (i + 1),mPaint);          invalidate();    }  }    @Override  public boolean onTouchEvent(MotionEvent event) {    //包装了动作,位置信息//    event.getY();//相对于View本身的坐标值//    event.getRawY();//返回的是相对于屏幕的坐标值    float y = event.getY();    Log.e(TAG, "onTouchEvent: Y:"+ y);//    Log.e(TAG, "onTouchEvent: RawY:"+event.getRawY() );    int measuredHeight = getMeasuredHeight();    int singleHeight = measuredHeight / letters.size();    int position = (int) (y / singleHeight);    Log.e(TAG, "onTouchEvent: " + position );    switch (event.getAction()) {      case MotionEvent.ACTION_MOVE:        Log.e(TAG, "onTouchEvent: ACTION_MOVE" );      case MotionEvent.ACTION_DOWN:        Log.e(TAG, "onTouchEvent: ACTION_DOWN" );        selectPosition = position;        if (mLetter != null) {          mLetter.setVisibility(View.VISIBLE);          //极限情况有可能下标越界,需要判断一下          if (position < letters.size() && position >= 0){            mLetter.setText(letters.get(position));          }        }        break;      case MotionEvent.ACTION_UP:        Log.e(TAG, "onTouchEvent: ACTION_UP" );        selectPosition = -1;        if (mLetter != null) {          mLetter.setVisibility(View.GoNE);        }        break;    }    //返回true代表事件被处理了    return true;  }}

--结束END--

本文标题: 如何在Android利用View模仿一个微信的LetterView效果

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

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

猜你喜欢
  • 如何在Android利用View模仿一个微信的LetterView效果
    如何在Android利用View模仿一个微信的LetterView效果?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。具体代码如下所示: public class LetterV...
    99+
    2023-05-31
    android view letterview
  • Android自定义View仿微信LetterView效果
    废话不多说了,具体代码如下所示: public class LetterView extends View { private String TAG = LetterV...
    99+
    2022-06-06
    view Android
  • 模仿iOS版微信的滑动View效果
    前言 最近经常交替使用Android和iOS手机。对于两个系统,从我们常用的列表来看,Android一般的列表菜单是通过长按出来的,而iOS是通过滑动出现的。比如我们常用的微信,对于...
    99+
    2022-06-04
    iOS 微信 滑动 View
  • 怎么在Android中利用Fragment模仿一个微信界面
    本篇文章为大家展示了怎么在Android中利用Fragment模仿一个微信界面,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。什么是Fragment  自从Android 3.0中引入fragment...
    99+
    2023-05-30
    android fragment
  • 如何利用Flutter仿写微信搜索页效果
    目录效果图顶部搜索栏SearchBar 实现细节左边搜索框实现右边取消按钮实现内容的检索内容的传递内容的检索搜索列表实现总结效果图 如上图所示,我们用 Flutter 来仿写搜索页...
    99+
    2024-04-02
  • 怎么在Android中利用view实现一个太极效果
    怎么在Android中利用view实现一个太极效果?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Android自定义view实现太极效果实例代码之前一直想要个加载的load...
    99+
    2023-05-31
    android view roi
  • Android仿微信通话背景的高斯模糊效果
    先看下效果图: 仔细观察上图,我们可以发现,背景图以用户头像为模板,对其进行了高斯模糊,并把它作为整个页面的背景色。 关于Android如何快速实现高斯模糊(毛玻璃效果),网上一堆...
    99+
    2024-04-02
  • 如何利用Android仿微博正文链接交互效果
    目录前言一、链接的匹配和显示交互二、链接的点击交互总结前言 社区内容经常会有插入链接的需要,这时就产生了对链接的UI和点击交互的需求,我们在微博中也经常会在列表页面和详情页面看到。下...
    99+
    2024-04-02
  • Android开发之模仿微信打开网页的进度条效果(高仿)
    一,为什么说是真正的高仿?   阐述这个问题前,先说下之前网上的,各位可以复制这段字,去百度一下  "仿微信打开网页的进度条效果" ,你会看到有很多类似的文章,不过...
    99+
    2022-06-06
    仿微信 进度条 android开发 Android
  • 如何在Android中利用ConstraintLayout实现一个动画效果
    这篇文章将为大家详细讲解有关如何在Android中利用ConstraintLayout实现一个动画效果,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。xml布局:<!-- activit...
    99+
    2023-05-31
    android constraintlayout roi
  • 如何在Android中利用TextView实现一个跑马灯效果
    本篇文章为大家展示了如何在Android中利用TextView实现一个跑马灯效果,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Android自带的跑马灯效果不太好控制,还必须要满足条件才能有效果,而...
    99+
    2023-05-31
    android textview roi
  • 如何在Android中利用itemdecoration实现一个时间线效果
    今天就跟大家聊聊有关如何在Android中利用itemdecoration实现一个时间线效果,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。代码如下:// 时间线装饰器pub...
    99+
    2023-06-06
  • 如何在Android应用中利用Dialog实现一个动画效果
    今天就跟大家聊聊有关如何在Android应用中利用Dialog实现一个动画效果,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 创建两个动画文件window_in.xml:<&a...
    99+
    2023-05-31
    android dialog roi
  • 怎么在Android中实现一个仿微软系统加载动画效果
    怎么在Android中实现一个仿微软系统加载动画效果?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。实现步骤:初始化五个圆球分别设置中心点,方便画圆利用ValueAnimat...
    99+
    2023-06-14
  • Android 开发中如何模仿一个微信拍摄和图像选择界面
    这篇文章将为大家详细讲解有关Android 开发中如何模仿一个微信拍摄和图像选择界面,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。 插件运行后的画面如下:下面这张图对图像进行筛选,...
    99+
    2023-05-31
    android roi
  • 如何在Android中利用TextView实现一个内容居中效果
    本篇文章给大家分享的是有关如何在Android中利用TextView实现一个内容居中效果,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1.首先自定义一个类,继承TextView...
    99+
    2023-05-31
    android textview roi
  • 如何在android中利用listview实现一个列表展示效果
    今天就跟大家聊聊有关如何在android中利用listview实现一个列表展示效果,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。设置条目点击事件package com.it...
    99+
    2023-05-31
    android listview roi
  • 如何在Android中利用ScrollView实现一个顶部悬停效果
    这期内容当中小编将会给大家带来有关如何在Android中利用ScrollView实现一个顶部悬停效果,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。原理:原理其实很简单就是对view的gone和visibl...
    99+
    2023-05-31
    android scrollview roi
  • Flutter如何利用Canvas模拟实现微信红包领取效果
    这篇文章主要介绍了Flutter如何利用Canvas模拟实现微信红包领取效果的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Flutter如何利用Canvas模拟实现微信红包领取效果文章都会有所收获,下面我们一起...
    99+
    2023-06-29
  • 在Android开发中利用RenderScript实现一个动态高斯模糊效果
    在Android开发中利用RenderScript实现一个动态高斯模糊效果?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。什么是RenderScriptRenderScript是...
    99+
    2023-05-31
    android renderscript ers
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作