8种机械键盘轴体对比
本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?
皑如山上雪,皎若云间月。
ToolBar
常用属性1
2
3
4
5
6背景------android:background="@color/yase"
阴影------android:elevation="@dimen/dp_4"
图标------app:logo="@drawable/icon_love"
返回图标--app:navigationIcon="@drawable/icon_a"
标题------app:title="捷特"
副标题----app:subtitle="天下无双"基本使用1
2
3
4
5
6
7
8
9
10
11
android:id="@+id/id_toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/yase"
android:elevation="@dimen/dp_4"
app:logo="@android:drawable/ic_delete"
app:navigationIcon="@android:drawable/ic_dialog_email"
app:subtitle="副标题"
app:title="标题">
设置标题和导航键的颜色1@android:color/holo_orange_dark副标题的颜色1@android:color/white
设置菜单
新建menu文件夹->新建.menu文件1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
xmlns:app="http://schemas.android.com/apk/res-auto">
android:id="@+id/test_menu1"
android:icon="@android:drawable/ic_menu_more"
android:title="测试1"
app:showAsAction="never"/>
android:id="@+id/test_menu2"
android:icon="@android:drawable/ic_menu_month"
android:title="测试2"
app:showAsAction="never"/>
android:id="@+id/test_menu3"
android:icon="@android:drawable/ic_menu_slideshow"
android:title="测试3"
app:showAsAction="never"/>
如果菜单中的文字要显示到ToolBar上,想让给这些文字设置字体颜色1@android:color/holo_blue_bright
给菜单设置点击事件、给navigation图标设置点击事件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//引入布局
public boolean (Menu menu){
getMenuInflater().inflate(R.menu.menu_toobar, menu);
return true;
}
//点击事件
public boolean onOptionsItemSelected(MenuItem item){
switch (item.getItemId()) {
case android.R.id.home:
Toast.makeText(MainActivity.this, "点击了navigation图标...", Toast.LENGTH_SHORT).show();
break;
case R.id.test_menu1:
ToastUtils.showMessage(MainActivity.this, "Test1");
break;
case R.id.test_menu2:
ToastUtils.showMessage(MainActivity.this, "Test2");
break;
case R.id.test_menu3:
ToastUtils.showMessage(MainActivity.this, "Test3");
break;
}
return super.onOptionsItemSelected(item);
}设置溢出菜单图标:1id_toolbar.setOverflowIcon(getResources().getDrawable(R.mipmap.ic_launcher));修改溢出菜单文字及字体大小,同时也会修改自定义View字体大小,及Toolbar上ActionMenu文字的大小1
2@android:color/holo_purple
25dp修改溢出菜单的背景,摆放位置,从系统Overflow样式知道其实就是修改对应属性的值即可
上代码1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21为ToolBar引入的主题
@android:color/holo_orange_dark
@android:color/white
@android:color/holo_red_dark
@android:color/holo_purple
25dp
为ToolBar popular引入的主题
false
wrap_content
5dp
@android:color/holo_orange_dark
5dip
0dip
具体的代码引入1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
android:id="@+id/id_toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/yase"
android:elevation="@dimen/dp_4"
app:logo="@android:drawable/ic_delete"
app:navigationIcon="@android:drawable/ic_dialog_email"
app:popupTheme="@style/AppTheme.PopupOverlay"
app:subtitle="副标题"
app:theme="@style/AppTheme.AppBarOverlay"
app:title="标题">
android:id="@+id/tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="标题"/>
CardView常用的属性1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17app:cardBackgroundColor 背景颜色
app:cardCornerRadius 圆角大小
app:cardElevation z轴阴影高度
app:cardMaxElevation z轴最大高度值
app:contentPadding 内容与边距的间隔
app:contentPaddingLeft 内容与左边的间隔
app:contentPaddingTop 内容与顶部的间隔
app:contentPaddingRight 内容与右边的间隔
app:contentPaddingBottom 内容与底部的间隔
app:paddingStart 内容与边距的间隔起始
app:paddingEnd 内容与边距的间隔终止
app:cardUseCompatPadding 设置内边距,在API21及以上版本和之前的版本仍旧具有一样的计算方式
app:cardPreventConrerOverlap 在API20及以下版本中添加内边距,这个属性为了防止内容和边角的重叠
注意:CardView中使用android:background设置背景颜色无效。代码中使用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<?xml version="1.0" encoding="utf-8"?>
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="20dp">
android:layout_width="100dp"
android:layout_height="100dp"
android:clickable="true"
android:foreground="?android:attr/selectableItemBackground"
app:cardBackgroundColor="@color/yase"
app:cardCornerRadius="@dimen/dp_8"
app:cardElevation="@dimen/dp_4"
app:cardPreventCornerOverlap="false"
app:cardUseCompatPadding="true"
app:contentPadding="10dp">
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="基本密码基本密码基本密码基本密码基本密码基本密码"
android:textSize="16dp"/>
具体属性的解释app:cardUseCompatPadding在5.0之前的版本中设置了 app:cardElevation=” “后 CardView 会自动留出空间供阴影显示,而5.0之后的版本中没有预留空间。
解决方法:
app:cardUseCompatPadding=”true”
让CardView在不同系统中使用相同的padding值,为阴影预留空间圆角问题
在>=5.0(Lollipop API 21)的版本,CardView会直接裁剪内容元素满足圆角的需求.
在<5.0(Lollipop API 21)的版本,CardView为了使内容元素不会覆盖CardView的圆角,会添加一个padding,这样一来,如果CardView设置了背景颜色,就很难看了.
解决方法:给CardView设置该属性:1
2
3
4
5
6
7
8
9
10这条属性的意思是:是否阻止圆角被覆盖,默认为true
设为false后,padding效果就不存在了,同时圆角也被覆盖了
该属性对5.X设备没什么影响.
###### 设置涟漪
```Java
android:clickable="true"
android:foreground="?android:attr/selectableItemBackground"