一、字體操作
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文件中
<colorname="transparent">#99000000</color>//前兩位為透明度數值越小透明度越好
第二步: style文件中
<style name="Transparent">
<item name="android:windowBackground">@color/transparent</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowAnimationStyle">@android:style/Animation</item>
<item name="android:windowNoTitle">true</item>//設置是否要去掉標題
</style>
第三步:清單文件中
<activity theme="...."></activity>引用
五、富文本或TextView內容實現復制和識別手機號
富文本RichTextView其實也是繼承自TextView實現,剛開始一直尋找復制富文本內容和富文本識別手機號,各種百度最終還是無果,最終只能搜TextView,誰知真的是TextView兩個屬性就能搞定的事。
復制內容的屬性
android:textIsSelectable="true"
長按就會提示框
識別手機號的屬性
android:autoLink="phone"
手機號就會突出顯示,并且點擊時就會打開撥號界面
沒想到會那么輕松搞定,哈哈哈