Git Product home page Git Product logo

androidutil's Introduction

AndroidUtil

Android的工具类

使用方式

Gradle:

compile 'njj.utils:androidutillib:1.0.7'

Maven:

<dependency>
  <groupId>njj.utils</groupId>
  <artifactId>androidutillib</artifactId>
  <version>1.0.5</version>
  <type>pom</type>
</dependency>

Android运行时权限申请使用方式:

1.最简单的接入方式(Activity的onCreate中调用)

    ReqPermisson.init(this)
            .addPermission(
                    Manifest.permission.READ_EXTERNAL_STORAGE,
                    Manifest.permission.READ_PHONE_STATE,
                    Manifest.permission.CAMERA)
            .request();

2.个性化配置(Activity的onCreate中调用)

    ReqPermisson.init(this)
            .isShowDialog(true) // 不设置默认为true
            .addPermission(
                    Manifest.permission.CALL_PHONE,
                    Manifest.permission.READ_EXTERNAL_STORAGE,
                    Manifest.permission.READ_PHONE_STATE,
                    Manifest.permission.CAMERA)
            .setAgainMsg("禁止相关权限将导致应用无法正常使用") // 自定义禁止授予权限dialog的弹窗提示信息。(未勾选下次不在询问)
            .setSettingMsg("禁止相关权限将导致应用无法正常使用") // 自定义禁止授予权限dialog的弹窗提示信息。(勾选下次不在询问)
            .request(new PermissionCallback() {

                   @Override
                    public void onFinish(boolean isFinish) {
                          // 权限申请全部完成,相关处理
                    }

                    @Override
                    public void onCancel(List<String> denyPermissions) {
                          // 权限申请未全部授予,返回参数为拒绝的相应权限。一般在提示弹窗,点击取消后调用。
                    }

                    @Override
                    public void onDeny(boolean isCheck, List<String> denyPermissions) {
                        // 权限申请未全部授予,一定会调用,可联合isShowDialog(false),去掉默认弹窗后,自定义逻辑处理
                    }
            });

屏幕适配引用方案:

1.在Application中进行初始化

 public class MyApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        Density.setDensity(this);
        // Density.setSize(375f); // 设置基础宽高,如设计图是720*1280,density=2.0,对应的基础宽就是360f,不设置默认是360f
        // Density.setSize(360f, 640f); // 也可以同时设置基础宽和高。当以高为基准进行适配时,要用到,默认是640f
    }
 }

2.使用方式 (Activity的onCreate中调用)

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        Density.setDefault(this); // 要在setContentView()之前调用
        // 默认是以宽为基础,进行适配,如果有需要根据高为基础进行适配,改为调用下面的代码。
        // Density.setOrientation(this, Density.ORI_HEIGHT);
        setContentView(R.layout.activity_second);
    }

3.优化调用,可以创建BaseActivity,完成调用

public class BaseActivity extends Activity {
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setOrientation();
        if (getLayout() != 0) {
            setContentView(getLayout());
        }
    }

    protected abstract int getLayout();

    /**
    * 如果改为以高度为基础进行适配,子类自行重写该方法,调用:
    * Density.setOrientation(this, Density.ORI_HEIGHT);
    */
    public void setOrientation() {
        Density.setDefault(this);
    }
}

4.dimens.xml文件

https://github.com/NieJianJian/AndroidUtil/tree/master/app/src/main/res/values

5.xml布局文件中的使用方式

根据设计图设置,如果一个View设计图给出的宽高分别是100px * 50px,字体大小为28px,布局文件设置如下:

<TextView
    android:layout_width="@dimen/dimen_100px"
    android:layout_height="@dimen/dimen_50px"
    android:textSize="@dimen/tvSize_28px"/>

androidutil's People

Stargazers

 avatar NieJianJian avatar

Watchers

NieJianJian avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.