导航:首页 > 操作系统 > android自定义开关按钮

android自定义开关按钮

发布时间:2023-05-16 01:39:48

① 怎么在android studio中实现开关按钮

先在布局文件中添加一个Button,然后再在java代码中获取这个按钮,设置它的监听事件就可以了。
.xml:
<Button android:"@+id/button1"......>
.java:
Button btn = (Button) findViewById(R.id.button1);
btn .setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
//你要执行的代码
}
});
这是一种方法

② Android如何实现如下样式的开关

switch里面有一个属性setThumbResource(友唤),这个方法可以指定使用自定义的Drawable来绘制该开关袜告拦的开关按钮,你试试可以不告胡。

③ android中的switch开关和ios中的不同,这样就需要通过动画来实现一个iphone开关了

做IOS开发的都知道,IOS提供了一个具有动态开关效果的UISwitch组件,这个组件很好用效果相对来说也很绚丽,当我们去点击开关的时候有动画效果,但遗憾的是Android上并没有给我们提供类似的组件(听说在Android4.0的版本上提供了具有动态效果的开关组件,不过我还没有去看文档),如果我们想实现类似的效果那该怎么办了呢?看来又得去自定义了。
公司的产品最近一直在做升级,主要做的就是把界面做的更绚丽更美观给用户更好的体验(唉,顾客是上帝......),其中的设置功能中就有开关按钮,原来的开关做的是两幅图片,通过点击图片来给开关设置不同的状态图片,但是这种效果很死板和程序的整体风格不太协调,于是就想着实现类似于IOS中的开关效果。
拿着笔在图纸上画了画,我实现的原理也是采用了两幅图片,一个整体的背景图:和一个小滑块图:,用小滑块图实现在背景图上滑动,当小滑块滑到左边时恰好遮挡了开字,就是显示的关了,同样原理当小滑块滑动到右侧时恰好遮挡了关字也就是现实开了,滑动的实现主要用的就是TranslateAnimation类,如有对TranslateAnimation不太熟悉的,问问度娘,她那有关TranslateAnimation的解说多了去了,毕竟自己动手,丰衣食足嘛,(*^__^*) 嘻嘻……
好了,老规矩来看一下项目结构吧:

工程中switch_button.xml文件就是对应的SwitchButton的布局文件,内容不需要解释,你一看就懂

?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/switch_parent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/switch_bg">

<ImageView
android:id="@+id/switch_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/switch_btn" />

</LinearLayout>

SwitchButton的布局文件中根节点是个LinearLayout,把它的背景设置成了一个含有开关文字的图片,里边包含一个ImageView,这个ImageView就是用来在LinearLayout中进行滑动的。
其中自定义开关组件就是都在wedgit包下的SwitchButton,那么赶紧来看一下SwitchButton的代码吧

?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149

public class SwitchButton extends LinearLayout {

/**
* 开关图片
*/
private LinearLayout switchParent;
/**
* 滑块图片
*/
private ImageView switchButton;
/**
* 按钮状态,默认关闭
*/
private boolean isOn = false;
/**
* 滑块需要滑动的距离
*/
private int scrollDistance;
/**
* 开关按钮监听器
*/
private SwitchChangedListner listner;

public SwitchButton(Context context) {
super(context);
initWedgits(context);
}

public SwitchButton(Context context, AttributeSet attrs) {
super(context, attrs);
initWedgits(context);
}

/**
* 初始化组件
*
* @param context
* 上下文环境
*/
private void initWedgits(Context context) {
try {
View view = LayoutInflater.from(context).inflate(
R.layout.switch_button, this);
switchParent = (LinearLayout) view.findViewById(R.id.switch_parent);
switchButton = (ImageView) view.findViewById(R.id.switch_button);
addListeners();
} catch (Exception e) {
e.printStackTrace();
}
}

/**
* 添加事件监听器
*/
private void addListeners() {
try {
switchParent.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
isOn = !isOn;
scrollSwitch();
if (null != listner) {
// 开关开发或者关闭的回调方法
listner.switchChanged(getId(), isOn);
}
}
});
} catch (Exception e) {
e.printStackTrace();
}
}

/**
* 滑动开关
*/
private void scrollSwitch() {
// 获取滑块需要滑动的距离,滑动距离等于父组建的宽度减去滑块的宽度
scrollDistance = switchParent.getWidth() - switchButton.getWidth();
// 初始化滑动事件
Animation animation = null;
if (isOn) {
animation = new TranslateAnimation(0, scrollDistance, 0, 0);
} else {
animation = new TranslateAnimation(scrollDistance, 0, 0, 0);
}
// 设置滑动时间
animation.setDuration(200);
// 滑动之后保持状态
animation.setFillAfter(true);
// 开始滑动
switchButton.startAnimation(animation);
}

/**
* 获取开关状态
*
* @return 【true:打开】【false:关闭】
*/
public boolean isOn() {
return isOn;
}

/**
* 设置开关状态
*
* @param isOn
* 开关状态【true:打开】【false:关闭】
*/
public void setOn(boolean isOn) {
if (this.isOn == isOn) {
return;
}
this.isOn = isOn;
post(new Runnable() {
@Override
public void run() {
scrollSwitch();
}
});
}

/**
* 设置开关状态监听器
*
* @param listner
* 开关状态监听器
*/
public void setOnSwitchListner(SwitchChangedListner listner) {
this.listner = listner;
}

/**
* 开关状态监听器
*
* @author llew
*
*/
public interface SwitchChangedListner {
/**
* 开关状态改变
*
* @param viewId
* 当前开关ID
* @param isOn
* 开关是否打开【true:打开】【false:关闭】
*/
public void switchChanged(Integer viewId, boolean isOn);
}
}

④ android滑动开关按钮实现方式有几种

起初我在Android上我只会使用CheckBox去满足对应的功能。后来,查看开发文档发现,android也有了自己的原键游生态开关控件,并且在4.0版本中又优化加入了新的类似控件--Switch控件,以及使用起来拦亮空十分简单的ToggleButton,可是它们只是简瞎带有切换效果,而不带有滑动切换效果,并且Switch控件只支持高版本的系统,对于2.3就不支持。所以,要想看如何实现滑动切换的效果,必须了解这些控件的实现方式。下面,让我们查看下android开发文档,看看这些是如何实现使用的。

⑤ 安卓手机怎么设置下面的三个按键

安卓手机下面三个键调出方法如下(以华为nova8手机为例):

1、解锁手机,在设置里点击“系统和更新”选项。

2、在系统和更新界面点击“系统导航方式”选项。

3、在系统导航方式界面点击“屏幕内导航”右侧的开关。

4、打开“屏幕三键导航”开关后即可看到手机屏幕下冲仔颤方的三个按钮,三角形按钮是返回键。

安卓(Android)是一种基于linux内核(不包含GNU组件)的自由及开放源代码的操作系统,主要使用于移动散败设备,如智能手机和平板电脑,由美国Google公司和开放手机联盟领导及开发,Android操作系统最初由安迪鲁宾开发,主要支持手机。

安卓系统的优势

开放性:在优势方面,Android平台首先就是其开放性,开发的平台允许任何移动终端厂商加入到Android联盟中来,显着的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。

丰富的硬件:这一点还是与Android平台的开放性相关,由于Android的开放性,众多的厂商会推出千奇百怪,功能特色各具的多种产品。功能上的差异和特色,却不会影响到数据同步、甚至软件的兼容,如同从诺基亚Symbian风格手机一下改用苹果iPhone,同时还可将Symbian中优秀的软件带到iPhone上使用、联系人等资料更是可以方便地转移。

以上内容参考:网络戚差—安卓系统

⑥ android滑动开关按钮实现方式有几种

关于Android中View控件的分类可以分为以下几类:
1. 文本类:
TextView、EditText、AutoCompleteTextView、MultAutoCompletTextView 、(TextSwitcher) 、(DigitalClock)
ExtractEditText、CheckedTextView、Chronometer

2.按钮类:
Button、CheckBox、RadioButton(RadioGroup) 、ToggleButton 、(ImageButton ) CompoundButton

2. 缩放按钮:
ZoomButton、ZoomControls

3. 图片类:
ImageView、ZoomButton、ImageButton、(ImageSwitcher ) QuickContactBadge

4. 时间控件:
DigitalClock、AnalogClock、TimePicker、DatePicker

5.进度显示:
ProgressBar、AbsSeekBar、SeekBar、RatingBar(星星评分)

6.导航: TabHost、TabWidget。

7.视频媒体:
VideView、MediaController

8.Dialog对话框
CharacherPickerDialog、AlertDialog、DatePickerDialog、ProgressDialog、TimePickerDialog

9. 布局类控件:
AbsoluteLayout、LinearLayout、RadioGroup 、TableLayout、 TableRow、RelativeLayout、FrameLayout

10.需要适配器的布局类:
AdapterView、AbsListView、GridView、ListView、AbsSpinner、Gallery Spinner

11.滚动条: HorizontalScrollView、ScrollView

12.网页: WebView

13.动画: ViewAimator、ViewFilpper、ViewSwitcher、ImageSwitcher、TextSwitcher

⑦ 在开发高德地图导航时使用amapnaviview为什么导航界面是空白

之前使用网络地图提供的Android导航API时,需要自定义开关导航的按钮,于是在导航的View中找到需要隐藏的控件,然后将控件的visible属性设置为GONE,这样就OK了。现在在使用芹粗空高德导航时出现了同样的问题。高德也没有提供相关凳州的API。于是我尝试使用解决网络地图的方法,在导航的界面中找相应的控件,不过最终失败了,并没有找到对应的控件。。。
于是继续在高德导航API中搜索。。。
最终在AMapNaviViewOptions类中找到了一个setLayoutVisible(boolean isLayoutVisible)方法,官方的说明是“设置导航界面UI是否显示”。开始误以为是设置导航地图是否显示,后面自己尝试了一下,运行效果居然是把除地图之外所有的操作都隐藏了。。。(效果图就不上传了,就只有一张地图)
隐藏了所有的操作控件,那我们就可以自己绘制各种控件了。不过有个问题,现在连导航的信息也没了。。。不过如果我们能获取到导航信息,那就好办了,幸运的是高德提供了一个方法。在AMapNaviListener接口中有一个方法onNaviInfoUpdate(NaviInfo naviinfo),官方的说明是“导航引导信息回调 naviinfo 是导航信息类”。所以我们可以实现AMapNaviListener接口,然后重写这个方法,获取到NaviInfo。NaviInfo是一个导航信息类,包含了导航相关的信息。
比如:
public String getCurrentRoadName()—获取当前路线名称
public String getNextRoadName()—获取下条路名
public int getPathRetainDistance()—获取路线剩余距离
public int getPathRetainTime()—获取路线剩余时间
public void setIconType(int iconType)—设置导航转向图标
有了这些信息,我们嫌瞎完全就可以自定义导航界面了。呃。。。地图除外。
感觉高德地图提供的Android 导航API比网络的要人性化呢。。。

⑧ android中怎样设定app自启动

android中怎样设定app自启动

方法/步骤
首先点按手机接口的设定标志
如果没有将设定图示放置在手机接口 可以点按手机接口上方向下拖动 然后点按下图中箭头指向的设定按钮
进入设定接口之后点按接口右上角的全部设定按钮 然后向上拖动接口
找到许可权管理按钮 点按该按钮
在许可权中点按开机自动启动
此时将出现手机中的所用应用app列表 如果点按某应用后面的灰色的开关 点按之后该开关将显示为蓝色的开启状态 那么此时该应用将会在手机开机时自动启动
点按接口下方的选单按钮 将弹出快捷选单 可以点按全部允许从而让所有的app都自动启动 或者点按全部禁止 这样设定可以让全部app在手机开机后都不能自动启动

怎样设定自启动专案

方法有三:
1.去 开始-程式-启动 中找 如果有 qq一项 删除即可。
2.若没有看到可以 开始-执行 中输入 msconfig 回车
开启 实用程式配置 找到启动选项卡 找到记录着 qq安装路径的一项 ,将该向前边的对钩去掉重起机器ok。
3.如果这里都没有的话,自己的技术还可以的话,可以去登录档看看, 开始-执行 regedit 回车,展开到HKEY_CURRENT_ 和HKEY_LOCAL_
中找 该程式的键,一般是以改程式的路径为键值的键,将其键值设定为0或者删除就可以了
这样大部分的自启动的专案都可以看到解决了
希望楼主能解决问题

Windows 8中怎样设定程式自启动

网络卡驱动有问题 若是更新过的最新版本 建议解除安装掉 安装官方释出的版本
若是驱动精灵等软体检测有新版本 则更新至公版试试

开机自启动怎样设定

将程式拉到开始-所有程式-启动中间去即可。

手机怎样设定自启动的软体关闭自启动

这个是设定不了的,除非你的手机获取root许可权才可以办到,也就是获取了root许可权就可以禁止手机软体自启动了。

电脑怎样设定自启动许可权

设定电脑启动程式的方法如下: 1开启开始选单,在搜寻框输入msconfig。 2按回车键,在弹窗框把需要开机启动的程式打勾,点选确定就可以。

三星7100怎样设定开机自启动找不到自启动

可尝试以下操作:
1.点选最近应用程式键(手机左下方的触控键)-点选左侧图示-进入工作管理员-活动应用程式-结束后台执行的程式。
2.开启设定-应用程式管理器-左右滑动-查询是否有“自动执行”选项-开启某一软体-将自动执行对勾取消即可。
3.可以安装第三方安全管理器软体限制后台执行。

红米手机怎样设定自启动的软体关闭自启动

去手机管家-许可权隐私-自启动管理
就有了哦

怎样把windows defender设定开机自启动

1、按WIN+R 调出执行,然后输入 gpedit.msc 确定;
2、然后在策略组中展开【计算机管理】-【管理模板】-【windows元件】-【windows Defender】;
3、然后找到关闭 windows Defender ,双击后设置为启用;

linux 自启动设定

在.bash_profile中设定就可以了

⑨ 手机虚拟按键怎么设置

1. 手机虚拟按键
手机虚拟按键 安卓手机如何调出虚拟按键
准备

一,手机root

二,手机安装RE文件管理

过程

一改吵,用RE找到system/build.prop

二,长按build.prop,选择用文本编辑器打开

三,再文本的最下面另起一行输入:

qemu.hw.mainkeys=0

这个指令即可!

其中0代表开启,1代表关闭,可以更改!

弄好后选择保存退出,然后退出RE,重启手机,

然后你的手机就会出现三个虚拟按键了,从左到右分别是返回键,主页键,最近使用程序,特定情况下会出现菜单键!

虚拟按键的版栏有点大

来源:tieba./p/2265346234
手机上的虚拟按键是什么意思?
虚拟按键就是在屏幕中设置一个图标,代替物理按键的功能,用来保护物理按键,延长物理按键的寿命。

拓展回答:

1. 虚拟就是没有实物、没有按键的、你那手机应该是触屏的、启用虚拟方向键就是在屏幕上有上、下、左、右、确认。功能跟按键一样。

2. 虚拟按键可以减少你适应home键与电源键的次数,真长按键使用时间。

3. 手机虚拟键盘是指用于全触摸手机的虚拟于屏幕的按键虚拟键盘。可直接把触摸屏上的虚拟键盘当实质键盘使用。

4. 关于屏内虚拟按键设计的好坏,一直都存在很大的争议。围绕着屏内虚拟按键,支持者与反对者之间进行了长期的争论,至今仍未分出胜负。然而,当多功能前置指纹按键开始普及的时候,屏内虚拟按键似乎正在逐步走向边缘化。
安卓如何开触屏虚拟键
前言: 现在很多安卓手机都取消了实体键或者触摸键,那么,代替这些按键的就是手机的虚拟按键了,比如GN、N4等手机都有虚拟按键,你是不是觉得这些虚拟按键很有趣呢?其实,谷歌在发布安卓4.0的时候,就肢弯为系统自身开发了这个功能,但是为什么有的手机上没有这个虚拟按键呢?那是因为很多手机厂商的系统是基于安卓原生再度开发的,他们因为手机的设计,而隐藏了这个功能。

也就是说,只要你的手机是安卓4.0以上的版本,都具有这个功能的,那么,今天我教大家如何实现这个隐藏的功能。 实现前提: 1、手机必须是安卓手机,并且安卓版本在4.0以上; 2、手机必须ROOT,具体ROOT方法请大家 在网上寻找,这里不做说明; 3、手机必须安装RE文件管理器。

步骤一: 1、打开安装好的RE文件管理器,进入system文件夹,点击一下图片中显示的”1“的位置,使状态变为”Mount R/O“可读写。 2、找到build.prop这个文件,长按这个文件,会弹出一个窗口,再选择”open in text editor“。

步骤二: 打开文件之后,你可以看到很多代码,翻到最后一行,然后增加一行代码:qemu.hw.mainkeys=0,然后保存推出,核饥侍再重启手机,你就可以看到手机屏幕下方的虚拟按键效果了。
华为手机 虚拟按键 怎么调出来
1、以华为P10为例,打开手机“设置”应用;

2、接下来在设置界面下拉选择“系统”选项;

3、接下来在系统界面选择“系统导航方式”选项;

4、接下来在系统导航方式界面可以看到默认勾选“屏外物理导航键”选项;

5、接下来勾选“屏内三键导航”选项;

6、接下来可以看到虚拟按键就调出来了;
安卓手机虚拟键盘怎么关闭
1、以华为p20手机为例,首先在手机桌面中找到设置图标,点击进入。

2、然后在设置页面中找到导航键一项,点击进入。

3、然后在里面可以看到有导航键可隐藏的页面了。

4、找到选项右侧的按钮开关,点击打开。

5、打开之后就可以看到虚拟键盘中左侧有一个小箭头的图标,点击一下。

6、这时就可以看到手机底部的虚拟键盘已经隐藏了。
怎么手动开关Android虚拟键?

三星Galaxy系列相对于其他Android最有辨识度的特点就是它们几乎都有着一颗实体的home键,但是实体键按得多很可能会遇到失灵的问题,当然我们可以通过一些虚拟键软件解决这个问题。而最近在网上出现了一种比较另类的方法,可以让Galaxy系列手机也加入虚拟键,同时利用相同的方法,也可以删除部分手机的虚拟键。

首先是要获取手机的root权限,然后打开“RE管理器”到系统根目录的System目录下,找到build.prop:

这个文件里包含了很多设备的信息,我们在设置里看到的很多版本号都是来自这里:

使用文本编辑的方式打开这个文件,在最后一行加入“qemu.hw.mainkeys=0”:

重启以后,就会发现屏幕下方出现熟悉的虚拟键,另外这造型似乎和Sony的虚拟键很类似…:

小米2也有可以通过相同的方法调出虚拟键,如图所示:

在设置的“按键”里面甚至还有虚拟键专用的调节菜单,可对四个虚拟键进行位置的调换,这不禁让人怀疑小米2的原型会不会就是带有虚拟键的:

当然了,这种方法对于小屏幕手机来说会造成很大的影响,占用了一定的屏幕空间 这个方法实际上对于一般用户来说可能用户都不大,不过利用同样的思路可以改变部分手机的虚拟键,例如较早期的One X(One S)就可以通过类似的方法去掉那“反人类”的菜单虚拟键:

方法也是类似,不过这次加入的是“qemu.hw.mainkeys=1”,重启以后那条烦人的黑边也就消失了,当然这已经是老方法了,在新的 HTC Sense里面,虚拟键已经可通过设置去除。如果有其他有虚拟键的手机,也可以尝试用相同的方法去除虚拟键,不过去掉以后我们就要想办法安装第三方的虚拟键应用以实现原来虚拟键的一些功能。

⑩ android开关按钮怎么实现

可以直接用button和两张图片(开和关),用图片做背景,在点击事件中切换图片就行了

阅读全文

与android自定义开关按钮相关的资料

热点内容
程序员那么可爱第几集在重庆相遇 浏览:673
上班两公里源码 浏览:817
南宁溯源码燕窝订制 浏览:933
在个人文件夹中新建文件 浏览:445
中国国家地理pdf下载 浏览:107
几套房子抵押可以解压其中一套吗 浏览:569
微爱app室外地板怎么装饰 浏览:231
辽宁省医保如何用app转 浏览:311
钟表cNc编程招聘 浏览:546
均线pdf 浏览:921
手机破解加密的压缩包 浏览:429
dnf程序员分析 浏览:365
外星人适合编程吗 浏览:205
phpcurl302跳转 浏览:843
奔放的程序员我的 浏览:714
服务器磁盘满了文件删不掉该如何处理 浏览:847
压缩弹簧展开长度 浏览:509
如何共享国外app 浏览:687
淘宝app如何扫描图片 浏览:594
反编译作业帮 浏览:856