细节罗列(字体加下滑线,加粗,删除线)

一、字体操作

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文件中
#99000000//前两位为透明度数值越小透明度越好
第二步: style文件中

第三步:清单文件中
引用

五、富文本或TextView内容实现复制和识别手机号

富文本RichTextView其实也是继承自TextView实现,刚开始一直寻找复制富文本内容和富文本识别手机号,各种百度最终还是无果,最终只能搜TextView,谁知真的是TextView两个属性就能搞定的事。

复制内容的属性
     android:textIsSelectable="true"

长按就会提示框

识别手机号的属性
 android:autoLink="phone"

手机号就会突出显示,并且点击时就会打开拨号界面

没想到会那么轻松搞定,哈哈哈

你可能感兴趣的:(细节罗列(字体加下滑线,加粗,删除线))