Android开发中容易遗忘的小知识

1、给页面添加背景 

 WindowManager.LayoutParams lp = getWindow().getAttributes();
        /**
         * 此处设置亮度值。dimAmount代表黑暗数量,也就是昏暗的多少,设置为0则代表完全明亮。 范围是0.0到1.0
         */
        lp.dimAmount = (float) 0.3;

2、国内镜像地址

jcenter(){ url 'http://jcenter.bintray.com/'}

3、Android原生Js之间交互。以及它们之间通信桥梁JsBridge

4、超快的Android数据库存储ObjectBox

5、延迟更新界面,判断当为UI线程时执行方法。

public final void runOnUiThread(Runnable action) {
    if (Thread.currentThread() != mUiThread) {
        mHandler.post(action);
    } else {
        action.run();
    }
}

6、AndroidMainfest.xml报错Permission is only granted to systems apps修改方法
File--setting--Editor--Inspections--Android--lint--correctness--using system app permissing将error修改为warning

7、AutoCompleteTextView:是EditText的直接子类,与普通EditText的最大不同就是。在用户输入的过程中,能够列出可供选择的输入项。方便使用者,需要编写adapter来显示下拉内容。

8、EventBus:可以通过eventbus来进行消息的传递。

9、super.方法:表示调用父类中和和该方法同名的所有内容,如果不写super则是完全重写该方法。

10、textview和edittext超过设置的行数显示...的方法:

android:ellipsize = "end"    省略号在结尾
android:ellipsize = "start"   省略号在开头
android:ellipsize = "middle"     省略号在中间
android:ellipsize = "marquee"  跑马灯
android:singleline = "true"

11、this.getSharedPreferences("SP", MODE_PRIVATE);表示写入的文件是私有的,只能被应用本身访问。

12、Android开发中经常会在setContentView(R.layout.XXX); 前设置requestWindowFeature(Window.FEATURE_NO_TITLE)。

他的意思是需要软件全屏显示、自定义标题(使用按钮等控件)和其他的需求

13、setWebChromeClient:是html5中在影响【View】的事件到来时,会通过WebViewClient中的方法回调通知用户

14、studio如何下载aar包:坑爹的包下载,需要在包后加入@aar,如下,不然在自己的私服nexus无法下载。

compile 'me.iwf.photopicker:PhotoPicker:0.9.5@aar'

15、apt的使用:

apt是一个注解工具,它对源代码文件进行检测找出其中的Annotation,使用Annotation进行额外的处理,但是2.2版本以后,Android Gradle 插件提供了名为 annotationProcessor  的功能来完全代替  android-apt,项目中如下全部去掉,apt引用改为annotationProcessor引用。

classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'

16、引用assets下的文件的地址:

"file:///android_asset/jsWeb/view/echarts_small.min.js"

17、merge标签

可以理解为是为了优化层级的标签,当子视图的布局不依赖与父视图时,则可以使用merge减少层级。

18、在代码中设置color等属性的SDK》23的方法:

ContextCompat.getColor(context,R.color.white)

19、开发自己的地图可以使用世纪高通的地图信息结合使用开发自己的地图。

20、Viewpager+fragment使用,只有在当前fragment才执行的方法加载方式。

     @Override
    //fragment默认执行该方法,当isVisibleToUser=true时,表示显示的是当前fragment
    public void setUserVisibleHint(boolean isVisibleToUser) {
        super.setUserVisibleHint(isVisibleToUser);
        if (isVisibleToUser) {
           
        }
    }

21、wraplayout:自动换行布局,水平排列子项,并自动换行。个人感觉挺鸡肋的,完全可以使用GridView替代,如果显示的内容不一样,则也完全可以通过权重来实现布局,完全不用这个框架都可以。https://github.com/AlexMofer/ProjectX/tree/master/wraplayout

22、ANR->Application Not Responding  也就是在规定的时间内,没有响应。

23、ActionBar默认高度为48dp

24、集成Activity和继承AppComPatActivity的style写法是不一样的。

25、ScrollView 中嵌套 List 或 RecyclerView 的做法官方明确禁止。除了开发过程中遇到的各种视觉和交互问题,这种做法对性能也有较大损耗。ListView 等 UI 组件自身有垂直滚动功能,也没有必要在嵌套一层 ScrollView。目前为了较好的 UI 体验,更贴近 Material Design 的设计,推荐使用 NestedScrollView。

26、文本大小使用单位 dp,View 大小使用单位 dp。对于 TextView,如果在文字大小确定的情况下推荐使用 wrap_content 布局避免出现文字显示不全的适配问题。说明:之所以文本大小也推荐使用 dp 而非 sp,因为 sp 是 Android 早期推荐使用的,但其实 sp 不仅和 dp 一样受屏幕密度的影响,还受到系统设置里字体大小的影响,所以使用 dp 对于应用开发会更加保证 UI 的一致性和还原度。

27、新建线程时,必须通过线程池提供(AsyncTask 或者 ThreadPoolExecutor或者其他形式自定义的线程池),不允许在应用中自行显式创建线程。

28、设置横竖屏:android:screenOrientation="portrait"              //横屏:landscape

29、nginx安装教程地址:https://www.runoob.com/linux/nginx-install-setup.html

30、android.permission.MOUNT_UNMOUNT_FILESYSTEMS权限报错,加入如下字段tools:ignore="ProtectedPermissions"

<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" tools:ignore="ProtectedPermissions"/>

31、设置华为手机全屏功能:

针对此问题,Android官方提供了适配方案,即提高App所支持的最大屏幕纵横比,实现起来也比较简单,在AndroidManifest.xml中做如下配置即可:

<meta-data android:name="android.max_aspect" android:value="2.4" />

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值