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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

android studio开关按钮,Android studio实现滑动开关

發(fā)布時(shí)間:2024/1/23 Android 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android studio开关按钮,Android studio实现滑动开关 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

大家好,今天剛學(xué)會(huì)使用Android Studio實(shí)現(xiàn)滑動(dòng)開關(guān)的效果,自己感覺還可以,和大家分享一下,如果覺得可以的可以拿去,然后再給我點(diǎn)個(gè)贊,謝謝。本人也是學(xué)Android studiok開發(fā)不久,是個(gè)菜鳥,各位大佬覺得有不好的地方,可以討論一下,共同學(xué)習(xí),一起進(jìn)步。

實(shí)現(xiàn)效果

下面是代碼,代碼寫的比較粗糙,注釋沒有寫的很好,需要用的可以自己移植一下

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;

/**

* 用于選擇手動(dòng)模式還是路線規(guī)劃模式

*/

public class ModelSelectView extends View {

Paint backPaint = new Paint();//背景畫筆

Paint facePaint = new Paint();//表面視圖畫筆

Paint colorPaint1 = new Paint();//繪制紅色和藍(lán)色

Paint colorPaint2 = new Paint();//繪制橙色

Paint colorPaint3 = new Paint();//繪制灰色

Paint handFont = new Paint();//手動(dòng)控制模式字體

Paint routeFont = new Paint();//路線規(guī)劃模式字體

boolean modelFlag = false;//false表示為手動(dòng)控制模式,true表示為路線規(guī)劃模式

RectF mRectF1 = new RectF(150, 840, 580, 960);

int x = 150, y = 900;//得到手指再控件上移動(dòng)的坐標(biāo)

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);

//設(shè)置手動(dòng)控制字體可見

handFont.setAlpha(255);

//設(shè)置路線規(guī)劃字體不可見

routeFont.setAlpha(0);

}else {

canvas.drawCircle(580, 900, 60, facePaint);

canvas.drawRect(x,840,580,960,facePaint);

//設(shè)置手動(dòng)控制字體不可見

handFont.setAlpha(0);

//設(shè)置路線規(guī)劃字體可見

routeFont.setAlpha(255);

}

canvas.drawText("手動(dòng)控制",250,915,handFont);

canvas.drawText("路線規(guī)劃",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();

//判斷得到的坐標(biāo)是否在視圖范圍之內(nèi)

if (getX >= 150 && getX <= 580 && getY >= 840 && getY <= 960) {

x = getX;

y = 900;

}

break;

case MotionEvent.ACTION_UP:

int getX1 = (int) event.getX();

int getY1 = (int) event.getY();

//判斷是否在控件內(nèi)

if (getY1 >= 810 && getY1 <= 990) {

if (getX1 <= 280) {

x = 150;

modelFlag = false;

} else if (getX1 >= 443) {

x = 580;

modelFlag = true;

} else {

if (!modelFlag) {

x = 150;

modelFlag = false;

} else {

x = 580;

modelFlag = true;

}

}

}

break;

}

invalidate();//刷新界面

return true;

}

}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

總結(jié)

以上是生活随笔為你收集整理的android studio开关按钮,Android studio实现滑动开关的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。