Android笔记

EditText

设置字体大小

    editText= (EditText) findViewById(R.id.in_login);
    // 新建一个可以添加属性的文本对象
    SpannableString ss = new SpannableString("请输入用户名");
    // 新建一个属性对象,设置文字的大小
    AbsoluteSizeSpan ass = new AbsoluteSizeSpan(15,true);
    // 附加属性到文本
    ss.setSpan(ass, 0, ss.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    // 设置hint
    editText.setHint(new SpannedString(ss)); // 一定要进行转换,否则属性会消失
    editText.setTextSize(15);//设置text字体大小

去除下划线

    android:background="@null"

TextView

文字长度控制

效果:

        android:maxWidth="50dp"
        android:ellipsize="end"
        android:maxLines="1"

setText()空指针问题

报错:

    android.content.res.Resources$NotFoundException: String resource ID #0x2

报错原因:当调用setText()方法时如果传入int型是不会被当成内容而是resourceID来使用

改法:

    TextView.setText("" + arg);

Android HTTP请求

  • 在Android4.0以后,会发现,只要是写在主线程(就是Activity)中的HTTP请求,运行时都会报错,这是因为Android在4.0以后为了防止应用的ANR(Aplication Not Response)异常,Android这个设计是为了防止网络请求时间过长而导致界面假死的情况发生。

解决方法:

            //AndroidManifest.xml

            <uses-permission android:name="android.permission.INTERNET" />

            <application
                ......
                android:usesCleartextTraffic="true">

    
            // Android 4.0 之后不能在主线程中请求HTTP请求
            new Thread(new Runnable(){
                @Override
                public void run() {
                    //Http请求代码
                }
            }).start();
    

状态栏

隐藏状态栏

  • 第一步
 //全屏并且隐藏状态栏
 private void hideStatusBar() {
     WindowManager.LayoutParams attrs = getWindow().getAttributes();
     attrs.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN;
     getWindow().setAttributes(attrs);
 }

 //全屏并且状态栏透明显示
 private void showStatusBar() {
     WindowManager.LayoutParams attrs = getWindow().getAttributes();
     attrs.flags &= ~WindowManager.LayoutParams.FLAG_FULLSCREEN;
     getWindow().setAttributes(attrs);
 }

  • 第二步:在做了该Activity的全屏设置的前提下,还要在onCreate()方法中加入如下语句:
 getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN);
 getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);

  • 第三步:获取状态的绝对高度,经过反射获取
 //获取手机状态栏高度
 public static int getStatusBarHeight(Context context) {
     Class<?> c = null;
     Object obj = null;
     Field field = null;
     int x = 0, statusBarHeight = 0;
     try {
         c = Class.forName("com.android.internal.R$dimen");
         obj = c.newInstance();
         field = c.getField("status_bar_height");
         x = Integer.parseInt(field.get(obj).toString());
         statusBarHeight = context.getResources().getDimensionPixelSize(x);
     } catch (Exception e1) {
         e1.printStackTrace();
     }
     return statusBarHeight;
 }

透明状态栏

  /**
    * 设置透明状态栏
    * 以下代码需要在setContentView方法之前
    */
   private void setStatusBarTransparent(){
       if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){
           Window window = getWindow();
           window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
           window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                   | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
           window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
           window.setStatusBarColor(Color.TRANSPARENT);
       } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT){
           getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
       }

   }

FileProvider

各种报错

1.Add Google Maven repository and sync project

  • 一种修改方法:在项目的build.gradle中修改如下:
   buildscript {
     repositories {
       maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}
       //jcenter()
       google()
     }
     ······
   }
   allprojects {
     repositories {
       google()
       maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}
       //jcenter()
     }
   }

2.你的主机中的软件中止了一个已建立的连接

https://blog.csdn.net/heming9174/article/details/108254640

3.Couldn‘t find meta-data for provider with authority

https://blog.csdn.net/haiyoumeizhuce/article/details/99981936

posted @ 2019-10-15 00:50  cyhui  阅读(191)  评论(0编辑  收藏  举报