广告
返回顶部
首页 > 资讯 > 移动开发 >Android studio 滑动开关实现
  • 382
分享到

Android studio 滑动开关实现

AndroidStudiostudio开关Android 2022-06-06 13:06:09 382人浏览 泡泡鱼
摘要

大家好,今天刚学会使用Android Studio实现滑动开关的效果,自己感觉还可以,和大家分享一下,如果觉得可以的可以拿去,然后再给我点个赞,

大家好,今天刚学会使用Android Studio实现滑动开关的效果,自己感觉还可以,和大家分享一下,如果觉得可以的可以拿去,然后再给我点个赞,谢谢。本人也是学Android studiok开发不久,是个菜鸟,各位大佬觉得有不好的地方,可以讨论一下,共同学习,一起进步。

实现效果

在这里插入图片描述
在这里插入图片描述
下面是代码,代码写的比较粗糙,注释没有写的很好,需要用的可以自己移植一下

package com.example.biansheng2;
import android.content.Context;
import android.graphics.canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.RectF;
import android.graphics.Typeface;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
import androidx.annotation.Nullable;

public class ModelSelectView extends View {
    Paint backPaint = new Paint();//背景画笔
    Paint facePaint = new Paint();//表面视图画笔
    Paint colorPaint1 = new Paint();//绘制红色和蓝色
    Paint colorPaint2 = new Paint();//绘制橙色
    Paint colorPaint3 = new Paint();//绘制灰色
    Paint handFont = new Paint();//手动控制模式字体
    Paint routeFont = new Paint();//路线规划模式字体
    boolean modelFlag = false;//false表示为手动控制模式,true表示为路线规划模式
    RectF mRectF1 = new RectF(150, 840, 580, 960);
    int x = 150, y = 900;//得到手指再控件上移动的坐标
    public ModelSelectView(Context context, @Nullable AttributeSet attrs) {
        super(context, attrs);
    }
    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        paintInit();
        canvas.drawRect(mRectF1, backPaint);
        canvas.drawCircle(150, 900, 60, backPaint);
        canvas.drawCircle(580, 900, 60, backPaint);
        if (!modelFlag){
            canvas.drawCircle(150, 900, 60, facePaint);
            canvas.drawRect(150,840,x,960,facePaint);
            //设置手动控制字体可见
            handFont.setAlpha(255);
            //设置路线规划字体不可见
            routeFont.setAlpha(0);
        }else {
            canvas.drawCircle(580, 900, 60, facePaint);
            canvas.drawRect(x,840,580,960,facePaint);
            //设置手动控制字体不可见
            handFont.setAlpha(0);
            //设置路线规划字体可见
            routeFont.setAlpha(255);
        }
        canvas.drawText("手动控制",250,915,handFont);
        canvas.drawText("路线规划",250,915,routeFont);
        canvas.drawCircle(x, y, 44, backPaint);
        canvas.drawCircle(x, y, 40, colorPaint2);
        canvas.drawCircle(x, y, 47, colorPaint3);
    }
    private void paintInit() {
        if (!modelFlag) {
            backPaint.setAntiAlias(true);
            backPaint.setColor(Color.parseColor("#ff00b5eb"));
            facePaint.setColor(Color.parseColor("#D81B60"));
            facePaint.setAntiAlias(true);
        }else {
            backPaint.setAntiAlias(true);
            backPaint.setColor(Color.parseColor("#D81B60"));
            facePaint.setColor(Color.parseColor("#ff00b5eb"));
            facePaint.setAntiAlias(true);
        }
        colorPaint2.setAntiAlias(true);
        colorPaint2.setColor(Color.parseColor("#FF6407"));
        colorPaint1.setAntiAlias(true);
        colorPaint1.setColor(Color.BLUE);
        colorPaint3.setColor(Color.WHITE);
        colorPaint3.setAntiAlias(true);
        colorPaint3.setStyle(Paint.Style.STROKE);
        colorPaint3.setStrokeWidth(5);
        Typeface font = Typeface.create(Typeface.DEFAULT_BOLD,Typeface.BOLD_ITALIC);
        handFont.setTypeface(font);
        handFont.setColor(Color.WHITE);
        handFont.setAntiAlias(true);
        handFont.setTextSize(50);
        routeFont.setTypeface(font);
        routeFont.setColor(Color.WHITE);
        routeFont.setAntiAlias(true);
        routeFont.setTextSize(50);
    }
    @Override
    public boolean onTouchEvent(MotionEvent event) {
        switch (event.getAction()) {
            case MotionEvent.ACTION_DOWN:
                break;
            case MotionEvent.ACTION_MOVE:
                int getX = (int) event.getX();
                int getY = (int) event.getY();
                //判断得到的坐标是否在视图范围之内
                if (getX >= 150 && getX = 840 && getY = 810 && getY1 <= 990) {
                            if (getX1 = 443) {
                                x = 580;
                                modelFlag = true;
                            } else {
                                if (!modelFlag) {
                                    x = 150;
                                    modelFlag = false;
                                } else {
                                    x = 580;
                                    modelFlag = true;
                                }
                            }
                    }
                    break;
        }
        invalidate();//刷新界面
        return true;
    }
}

作者:上帝的头子的头子


--结束END--

本文标题: Android studio 滑动开关实现

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

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

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

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

下载Word文档
猜你喜欢
  • Android studio 滑动开关实现
    大家好,今天刚学会使用Android Studio实现滑动开关的效果,自己感觉还可以,和大家分享一下,如果觉得可以的可以拿去,然后再给我点个赞,...
    99+
    2022-06-06
    Android Studio studio 开关 Android
  • Android studio实现滑动开关
    大家好,今天刚学会使用Android Studio实现滑动开关的效果,自己感觉还可以,和大家分享一下,如果觉得可以的可以拿去,然后再给我点个赞,谢谢。本人也是学Android ...
    99+
    2022-06-06
    Android Studio studio 开关 Android
  • Android开发仿IOS滑动开关实现代码
    Android开发仿IOS滑动开关实现代码Android与iOS相比,ios好多控件都是自带的,而android需要使用自定义来实现。今天说的是ios的滑动开关,我层看到好多博客都是通过自定义ToggleButton实现的。这里我通过自定义...
    99+
    2023-05-31
    android ios 滑动开关
  • Android自定义控件实现滑动开关效果
    自定义开关控件   Android自定义控件一般有三种方式 1、继承Android固有的控件,在Android原生控件的基础上,进行添加功能和逻辑。 2、继承V...
    99+
    2022-06-06
    开关 Android
  • C#实现滑动开关效果
    C#重绘checkbox生成滑动开关,供大家参考,具体内容如下 通过调用checkbox控件的paint事件,在重绘事件里判断checked属性,如果选中绘制选中图形,如果未选中绘制...
    99+
    2022-11-12
  • android开发教程之实现滑动关闭fragment示例
    主要代码:(有注释) 代码如下:package com.example.checkboxtest; import android.annotation.SuppressLin...
    99+
    2022-06-06
    程之 android开发 fragment 教程 Android
  • Android自定义控件实现简单滑动开关效果
    本文实例为大家分享了Android自定义控件实现简单滑动开关的具体代码,供大家参考,具体内容如下 ToggleButton 滑动开关 项目概述 滑动开关是一个纯粹的自定义控件,上面的...
    99+
    2022-11-13
  • 怎么用Android studio实现左右滑动切换图片
    今天小编给大家分享一下怎么用Android studio实现左右滑动切换图片的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解...
    99+
    2023-06-30
  • android实现滑动解锁
    效果图    需要用到的画笔, 整体灰色的背景,  滑块, 滑动之后绿色背景, 字体  mSliPaint = new Paint(); mSl...
    99+
    2022-06-06
    解锁 Android
  • Android Studio实现帧动画
    本文实例为大家分享了Android Studio实现帧动画的具体代码,供大家参考,具体内容如下 按一定的顺序播放静态的图片 1、几张联系的图片 2、一个图片资源管理布局文件:car...
    99+
    2022-11-12
  • Android实现左滑关闭窗口
    前言 目前市场很多的APP都带有窗口滑动切换关闭,这种切换,使得用户操作比较爽,而且觉得功能点上也比较大气,在此就是自己总结了一个简易的方法,直接替换在基础窗口里面,使用安卓最基础的...
    99+
    2022-11-13
  • Android编程实现可滑动的开关效果(附demo源码下载)
    本文实例讲述了Android编程实现可滑动的开关效果。分享给大家供大家参考,具体如下: 闲着没事,把之前写的一个Demo放上来分享下。就是一个开关,实现可滑动和动画效果。不是图...
    99+
    2022-06-06
    开关 demo Android
  • Android开发之ViewPager实现滑动切换页面
    本文实例为大家分享了Android开发之ViewPager实现滑动切换页面的具体代码,供大家参考,具体内容如下 基本构件 activity_main.xml 依然是在简单的线性布局里...
    99+
    2022-11-13
  • Android开发之实现手势滑动的功能
    Android开发之实现手势滑动的功能首先得Activity必须实现OnGestureListener接口,该接口提供了关于手势操作的一些方法,onDown方法:onDown是,一旦触摸屏按下,就马上产生onDown事件public boo...
    99+
    2023-05-30
    android 手势滑动 roi
  • Android实现滑动标签页
    本文实例为大家分享了Android实现滑动标签页的具体代码,供大家参考,具体内容如下 TabLayoutActivity.java package cn.edu.zufe.ap...
    99+
    2022-11-12
  • Android SeekBar实现禁止滑动
    本文实例为大家分享了Android SeekBar实现禁止滑动的具体代码,供大家参考,具体内容如下 由于项目需要,在关闭开关的时候需要将顶部的调温栏禁用,变为灰色且不可点击滑动,而开...
    99+
    2022-11-12
  • Android SeekBar实现平滑滚动
    本文实例为大家分享了Android SeekBar实现平滑滚动的具体代码,供大家参考,具体内容如下 由于项目需要,SeekBar只需要三个档,但是如果只设置三个档会很难滑,看着也不好...
    99+
    2022-11-12
  • Android Studio实现补间动画
    本文实例为大家分享了Android Studio实现补间动画的具体代码,供大家参考,具体内容如下 补间动画是给出初始位置和结束位置,中间由系统自动补充的动画 1、补间动画的配置文件:...
    99+
    2022-11-12
  • Android实现ViewFlipper图片动画滑动
    今天给大家实现的功能是类似于ViewFlipper的图片滑动的效果,供大家参考,具体内容如下 现在就直接上代码吧! 代码实例: 1、xml布局文件 <xml version="...
    99+
    2022-11-13
  • CSS3如何模拟IOS实现滑动开关效果
    这篇文章主要介绍CSS3如何模拟IOS实现滑动开关效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!前言H5站点需要IOS滑动按钮的效果,想了想似乎CSS3能搞起,就折腾出来了......
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作