一、字体操作
1.加下滑线
tvPhoneKefu.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG);
2.加粗
TextView tv = (TextView)findViewById(R.id.tv);
TextPaint tp = tv.getPaint();
tp.setFakeBoldText(true);
方式二
android:textStyle="bold"
3.删除线
textview.getPaint().setFlags(Paint. STRIKE_THRU_TEXT_FLAG ); //中间横线(删除线)
二、ScrollView问题
1.和RecyclerView嵌套卡顿
设置RecyclerView属性:
setNestedScrollingEnabled(false);
2.ScrollView滑动时头部隐藏显示
自定义MyScrollView 继承 ScrollView 暴露一个方法
public class MyScrollView extends ScrollView {
private ScrollViewListener scrollViewListener = null;
public MyScrollView(Context context) {
super(context);
}
public MyScrollView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void onScrollChanged(int x, int y, int oldx, int oldy) {
//x为当前滑动条的横坐标,y表示当前滑动条的纵坐标,oldx为前一次滑动的横坐标,oldy表示前一次滑动的纵坐标
super.onScrollChanged(x, y, oldx, oldy);
if (scrollViewListener != null) {
//在这里将方法暴露出去
scrollViewListener.onScrollChanged(this, x, y, oldx, oldy);
}
}
//是否要其弹性滑动
@Override
protected boolean overScrollBy(int deltaX, int deltaY, int scrollX,
int scrollY, int scrollRangeX, int scrollRangeY,
int maxOverScrollX, int maxOverScrollY, boolean isTouchEvent) {
// 弹性滑动关键则是maxOverScrollX, 以及maxOverScrollY,
// 一般默认值都是0,需要弹性时,更改其值即可
// 即就是,为零则不会发生弹性,不为零(>0,负数未测试)则会滑动到其值的位置
return super.overScrollBy(deltaX, deltaY, scrollX, scrollY, scrollRangeX,
scrollRangeY, 0, 0, isTouchEvent);
}
//接口
public interface ScrollViewListener {
void onScrollChanged(View scrollView, int x, int y, int oldx, int oldy);
}
public void setScrollViewListener(ScrollViewListener listener)
{
scrollViewListener=listener;
}
}
使用时:
svHome.setScrollViewListener(new MyScrollView.ScrollViewListener() {
@Override
public void onScrollChanged(View scrollView, int x, int y, int oldx, int oldy) {
if (y < 600) {
// float alpha = 1 - ((float) y) / 800;
float alpha = ((float) y) / 600;
rlSearch.setAlpha(alpha);
if (alpha == 0) {
rlSearch.setClickable(false);
} else {
rlSearch.setClickable(true);
}
} else {
if (oldy > y) {
//下滑显示标题栏
rlSearch.setAlpha(0);
rlSearch.setClickable(false);
} else {
rlSearch.setAlpha(1);
rlSearch.setClickable(true);
}
}
}
});
return view;
}
三、调起打电话
Intent intent1 = new Intent(Intent.ACTION_CALL, Uri.parse("tel:110"));
intent1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
// TODO: Consider calling
// ActivityCompat#requestPermissions
// here to request the missing permissions, and then overriding
// public void onRequestPermissionsResult(int requestCode, String[] permissions,
// int[] grantResults)
// to handle the case where the user grants the permission. See the documentation
// for ActivityCompat#requestPermissions for more details.
return;
}
startActivity(intent1);
四、Activity半透明和去除标题栏
第一步:color文件中
第二步: style文件中
第三步:清单文件中
五、富文本或TextView内容实现复制和识别手机号
富文本RichTextView其实也是继承自TextView实现,刚开始一直寻找复制富文本内容和富文本识别手机号,各种百度最终还是无果,最终只能搜TextView,谁知真的是TextView两个属性就能搞定的事。
复制内容的属性
android:textIsSelectable="true"
长按就会提示框
识别手机号的属性
android:autoLink="phone"
手机号就会突出显示,并且点击时就会打开拨号界面
没想到会那么轻松搞定,哈哈哈