美文网首页安卓面试
Android 日常问题整理(3)

Android 日常问题整理(3)

作者: 飞指 | 来源:发表于2019-12-31 13:33 被阅读0次

适配底部导航栏

第一步,打开需要适配的导航栏布局,添加:

 android:fitsSystemWindows="true"

第二步,去对应的Activity ,在Activity中添加,放在setContentView之后执行

Glide 3.7 加载圆角imageView

加载圆角imageView 自定义类

package com.hunan.juyan.utils;

import android.content.Context;
import android.content.res.Resources;
import android.graphics.*;
import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool;
import com.bumptech.glide.load.resource.bitmap.BitmapTransformation;
import com.hunan.juyan.utils.alipayutil.Alipay;

/**
* Glide 加载圆角自定义属性
*/
public class GlideRoundTransformUtils extends BitmapTransformation {
   private static float radius = 0.0f;

   public GlideRoundTransformUtils(Context context) {
       this(context, 4);
   }

   public GlideRoundTransformUtils(Context context, int dp) {
       super(context);
       radius = Resources.getSystem().getDisplayMetrics().density * dp;
   }


   @Override
   protected Bitmap transform(BitmapPool pool, Bitmap toTransform, int outWidth, int outHeight) {
       return roundCorp(pool, toTransform);
   }

   private static Bitmap roundCorp(BitmapPool pool, Bitmap source) {
       if (source == null) return null;
       Bitmap result = pool.get(source.getWidth(), source.getHeight(), Bitmap.Config.ARGB_8888);
       if (result == null) {
           result = Bitmap.createBitmap(source.getWidth(), source.getHeight(), Bitmap.Config.ARGB_8888);
       }
       Canvas canvas = new Canvas(result);
       Paint paint = new Paint();
       paint.setShader(new BitmapShader(source, BitmapShader.TileMode.CLAMP, BitmapShader.TileMode.CLAMP));
       paint.setAntiAlias(true);
       RectF rectF = new RectF(0f, 0f, source.getWidth(), source.getHeight());
       canvas.drawRoundRect(rectF, radius, radius, paint);
       return result;
   }

   @Override
   public String getId() {
       return getClass().getName() + Math.round(radius);
   }
}

使用Glide 加载圆角的使用方式:

        Glide.with(context).load("路径").transform(new CenterCrop(getContext()), new GlideRoundTransformUtils(getContext())).placeholder(R.mipmap.local_image)// 加载错误图
                   .crossFade()
                   .error(R.mipmap.local_image).into(itemView);

判断字符串中出现字母的数量

   /**
    * 获取当前字符串中是否包含数字或字母以及个数
    *
    * @param text
    * @return
    */
   public static int getNumAndChatSize(String text) {
       int result = 0;
       for (int i = 0; i < text.length(); i++) {
           Pattern p = Pattern.compile("[a-zA-Z0-9]");
           Matcher m = p.matcher(text.charAt(i) + "");
           if (m.matches()) {
               ++result;
           }
       }
       return result;
   }

判断字符串中连续出现的字母数量是否超过五个

   /**
    *  判断字符串中连续出现的字母数量是否超过五个
    * @param text
    * @return 是否超过五个数,true 超过五个数,
    *                        false 未超过五个数
    * */
   public static boolean getNumAndChatContinuous(String text) {
       int result = 0;
       for (int i = 0; i < text.length(); i++) {
           Pattern p = Pattern.compile("[a-zA-Z0-9]");
           Matcher m = p.matcher(text.charAt(i) + "");
           if (m.matches()) {
               ++result;
           } else {
               result = 0;
           }
           if (result > 4) {
               return true;
           }
       }
       return false;
   }

处理General error during semantic analysis: Unsupported class file major version 57此种问题

具体的报错日志如下:

Gradle sync failed: startup failed:
           General error during semantic analysis: Unsupported class file major version 57
           java.lang.IllegalArgumentException: Unsupported class file major version 57
           at groovyjarjarasm.asm.ClassReader.<init>(ClassReader.java:184)
           at groovyjarjarasm.asm.ClassReader.<init>(ClassReader.java:166)
           at groovyjarjarasm.asm.ClassReader.<init>(ClassReader.java:152)
           at groovyjarjarasm.asm.ClassReader.<init>(ClassReader.java:273)
           at org.codehaus.groovy.ast.decompiled.AsmDecompiler.parseClass(AsmDecompiler.java:81)
           at org.codehaus.groovy.control.ClassNodeResolver.findDecompiled(ClassNodeResolver.java:254)
           at org.codehaus.groovy.control.ClassNodeResolver.tryAsLoaderClassOrScript(ClassNodeResolver.java:192)
           at org.codehaus.groovy.control.ClassNodeResolver.findClassNode(ClassNodeResolver.java:172)
           at org.codehaus.groovy.control.ClassNodeResolver.resolveName(ClassNodeResolver.java:128)
           at org.codehaus.groovy.ast.decompiled.AsmReferenceResolver.resolveCl... (show balloon)

可以去File->Project Structuer中查看当前导入的项目中使用的SDK版本是否与之前项目匹配的相同,如果不相同修改为相同版本即可

相关文章

  • Android 日常问题整理(3)

    适配底部导航栏 第一步,打开需要适配的导航栏布局,添加: 第二步,去对应的Activity ,在Activity中...

  • Android 日常问题整理 (一)

    适配红米Note3 Toast 显示出现 应用程序名称: Button 去掉背景阴影 判断当前Activity 是...

  • Android日常问题整理(2)

    EditText 实现密码的显示与隐藏 Android StatusBar 改变颜色和背景 Android 在开发...

  • 2019-03-06

    今日工作整理: 1、整理并掌握API需求文档 2、整理APP的相关需求文档 3、解决用户日常问题 问题: 1、【配...

  • Android问题整理

    Webview加载中文乱码 改成 反射获取属性 getField只能获取获取public属性,获取private需...

  • mysql日常问题整理

    1、limit 效率 1)limit语句的查询时间与起始记录的位置成正比2)mysql的limit语句是很方便,但...

  • Android面试总结

    整理一些常见的Android面试题(针对于2~3年开发经验中所遇到的问题)android阿里面试题锦集(点击查看)...

  • Android权限问题整理

    Android权限系统非常庞大,我们在Android系统中做任何操作都需要首先获取Android系统权限,本文记录...

  • android studio问题整理

    1.com.android.build.api.transform.TransformException: com...

  • Android权限问题整理

    Android权限系统源于Android是沙盒应用,系统为每个应用分配一个独一无二的linux用户id,因此每个应...

网友评论

    本文标题:Android 日常问题整理(3)

    本文链接:https://www.haomeiwen.com/subject/yopboctx.html