编辑:[db:作者] 时间:2024-08-25 03:46:19
好吧,也是醉了,好吧...本节讲解的两个实在都是开关组件,只是后者须要在Android 4.0往后才能利用 以是AndroidManifest.xml文件中的minsdk须要 >= 14 否则会报错~,先来看看这两个控件长什么样先, Android 5.0后这两个控件比较以前来说好看了许多,先看下5.0前的样子:
5.0以前的ToggleButton和Switch:
5.0版本:
好吧,光鲜的比拟...接下来我们就来学习者两个控件的利用吧,实在两个的利用险些是相同的。
开始之前贴下官方API先:Switch;ToggleButton
1.核心属性讲解:
1)ToggleButton(开关按钮)
可供我们设置的属性:
android:disabledAlpha:设置按钮在禁用时的透明度android:textOff:按钮没有当选中时显示的笔墨android:textOn:按钮当选中时显示的笔墨 其余,除了这个我们还可以自己写个selector,然后设置下Background属性即可~2) Switch(开关)
可供我们设置的属性:
android:showText:设置on/off的时候是否显示笔墨,booleanandroid:splitTrack:是否设置一个间隙,让滑块与底部图片分隔,booleanandroid:switchMinWidth:设置开关的最小宽度android:switchPadding:设置滑块内笔墨的间隔android:switchTextAppearance:设置开关的笔墨外不雅观,暂时没创造有什么用...android:textOff:按钮没有当选中时显示的笔墨android:textOn:按钮当选中时显示的笔墨android:textStyle:笔墨风格,粗体,斜体写划线那些android:track:底部的图片android:thumb:滑块的图片android:typeface:设置字体,默认支持这三种:sans, serif, monospace;除此以外还可以利用 其他字体文件(.ttf),首先要将字体文件保存在assets/fonts/目录下,不过须要在Java代码中设置: Typeface typeFace =Typeface.createFromAsset(getAssets(),\"大众fonts/HandmadeTypewriter.ttf\"大众); textView.setTypeface(typeFace);2.利用示例:
由于比较大略,以是我们把他们写到一起,其余,我们为Switch设置下滑块和底部的图片,实现 一个类似于IOS 7的滑块的效果,但是有个缺陷便是不能在XML中对滑块和底部的大小进行设置, 便是素材多大,Switch就会多大,我们可以在Java中得到Drawable工具,然后对大小进行修正, 大略的例子:
运行效果图:
实当代码: 先是两个drawable的文件: thumb_selctor.xml:
<?xml version=\"大众1.0\"大众 encoding=\公众utf-8\公众?>
<selector xmlns:android=\公众http://schemas.android.com/apk/res/android\"大众>
<item android:state_pressed=\"大众true\"大众 android:drawable=\"大众@drawable/switch_btn_pressed\公众/>
<item android:state_pressed=\"大众false\公众 android:drawable=\"大众@drawable/switch_btn_normal\"大众/>
</selector>
track_selctor.xml:
<?xml version=\公众1.0\"大众 encoding=\"大众utf-8\公众?>
<selector xmlns:android=\"大众http://schemas.android.com/apk/res/android\"大众>
<item android:state_checked=\公众true\公众 android:drawable=\"大众@drawable/switch_btn_bg_green\公众/>
<item android:state_checked=\公众false\"大众 android:drawable=\"大众@drawable/switch_btn_bg_white\公众/>
</selector>
布局文件:activity_main.xml:
<LinearLayout xmlns:android=\公众http://schemas.android.com/apk/res/android\"大众
xmlns:tools=\"大众http://schemas.android.com/tools\"大众
android:layout_width=\"大众match_parent\公众
android:layout_height=\"大众match_parent\"大众
android:orientation=\公众vertical\"大众
tools:context=\"大众.MainActivity\"大众>
<ToggleButton
android:id=\公众@+id/tbtn_open\公众
android:layout_width=\"大众wrap_content\公众
android:layout_height=\公众wrap_content\"大众
android:checked=\公众true\"大众
android:textOff=\"大众关闭声音\"大众
android:textOn=\"大众打开声音\"大众 />
<Switch
android:id=\"大众@+id/swh_status\公众
android:layout_width=\"大众wrap_content\"大众
android:layout_height=\"大众wrap_content\"大众
android:textOff=\"大众\公众
android:textOn=\"大众\公众
android:thumb=\公众@drawable/thumb_selctor\"大众
android:track=\公众@drawable/track_selctor\"大众 />
</LinearLayout>
MainActivity.java:
public class MainActivity extends AppCompatActivity implements CompoundButton.OnCheckedChangeListener{
private ToggleButton tbtn_open;
private Switch swh_status;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tbtn_open = (ToggleButton) findViewById(R.id.tbtn_open);
swh_status = (Switch) findViewById(R.id.swh_status);
tbtn_open.setOnCheckedChangeListener(this);
swh_status.setOnCheckedChangeListener(this);
}
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
switch (compoundButton.getId()){
case R.id.tbtn_open:
if(compoundButton.isChecked()) Toast.makeText(this,\"大众打开声音\公众,Toast.LENGTH_SHORT).show();
else Toast.makeText(this,\"大众打开声音\公众,Toast.LENGTH_SHORT).show();
break;
case R.id.swh_status:
if(compoundButton.isChecked()) Toast.makeText(this,\"大众开关:ON\"大众,Toast.LENGTH_SHORT).show();
else Toast.makeText(this,\"大众开关:OFF\"大众,Toast.LENGTH_SHORT).show();
break;
}
}
}
本站所发布的文字与图片素材为非商业目的改编或整理,版权归原作者所有,如侵权或涉及违法,请联系我们删除,如需转载请保留原文地址:http://www.baanla.com/ktwx/105885.html
下一篇:返回列表
Copyright 2005-20203 www.baidu.com 版权所有 | 琼ICP备2023011765号-4 | 统计代码
声明:本站所有内容均只可用于学习参考,信息与图片素材来源于互联网,如内容侵权与违规,请与本站联系,将在三个工作日内处理,联系邮箱:123456789@qq.com