Android Tips 1

去除重复库的引入

compile ('com.sothree.slidinguppanel:library:2.0.4'){ 
    exclude module: 'support-v4'
}

去除依赖库中的引入

compile (project(':a')){    
    exclude module: 'b'    
    exclude module: 'c'
}

去除 module a中关于b、c的引入,而使用当前project的依赖

Fresco图片设置

在使用Fresco进行图片设置的时候,使用DraweeView设置图片的时候,需要谨慎使用setImage的方法。(在Fresco 0.8.1版本的使用,DraweeView还是直接继承自ImageView) ,这样在调用的时候,若是图片过大,则会出现OOM的问题。

/**
* Use this method only when using this class as an ordinary ImageView.
* @deprecated Use {@link #setController(DraweeController)} instead.
*/
@Override
@Deprecated
public void setImageDrawable(Drawable drawable) {
  init(getContext());
  mDraweeHolder.setController(null);
  super.setImageDrawable(drawable);
}

/**
* Use this method only when using this class as an ordinary ImageView.
* @deprecated Use {@link #setController(DraweeController)} instead.
*/
@Override
@Deprecated
public void setImageBitmap(Bitmap bm) {
  init(getContext());
  mDraweeHolder.setController(null);
  super.setImageBitmap(bm);
}

/**
* Use this method only when using this class as an ordinary ImageView.
* @deprecated Use {@link #setController(DraweeController)} instead.
*/
@Override
@Deprecated
public void setImageResource(int resId) {
  init(getContext());
  mDraweeHolder.setController(null);
  super.setImageResource(resId);
}

/**
* Use this method only when using this class as an ordinary ImageView.
* @deprecated Use {@link #setController(DraweeController)} instead.
*/
@Override
@Deprecated
public void setImageURI(Uri uri) {
  init(getContext());
  mDraweeHolder.setController(null);
  super.setImageURI(uri);
}

从代码中给出的注释来看,这几个方法已被废弃。正确的姿势应该使用setController方法来设置图片。

获取View的bitmap

view.setDrawingCacheEnabled(true);
view.buildDrawingCache();
Bitmap bitmap  = Bitmap.createBitmap(v.getDrawingCache());
view.setDrawingCacheEnabled(false);

layout preview 显示

Android每次编译运行是件耗时的事情,所以这里使用layout preview有个正确的姿势可以注意一下。

tools:text=”Linenumber” 
tools:drawableLeft=”@mipmap/ic_launcher”

在xml布局中,使用TextView的时候,可以使用以上属性。使用这些属性,只会在layout preview中会生效,在运行时则会被忽略。
另外感觉一个非常有用的属性就是

tools:listitem=”@layout/row_person”

这样,在listview或者recyclerView中,就可以顺带看到我们ItemView的效果了。

Textview 去除文本间距

android:includeFontPadding="false"

git ignore失效的问题

Cannot ignore .idea/workspace.xml - keeps popping up

项目直接使用 aar

repositories {
   flatDir {
     dirs 'libs'
   }
}

dependencies {
    compile(name:'cards', ext:'aar')
}

List转换为数组

Foo[] array = new Foo[list.size()];
list.toArray(array); 

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 137,975评论 20 590
  • 前言 本文是一篇译文,这篇是这个系列的第一篇.讲述的是Android开发中遇到的一些好用的小技巧,或者一些实用的A...
    Gracker阅读 642评论 1 9
  • 一. 她突然就想起了他,他的名字,他的篮球,他家的地名,她曾听到的他转去的高中校名,这些都不是最重要的,她努力想他...
    Change20161023阅读 54评论 0 0
  • 盯着感冒的孩子一夜,担心发烧的焦虑揣在心里,这一夜,在半失眠中度过。五点半起床,酸酸的鼻子、昏昏的脑袋,鼻涕、...
    强人小琦阅读 64评论 1 0
  • 我和谁都不争,和谁争我都不屑;我爱大自然,其次就是艺术,我双手烤着生命之火取暖,火萎了,我也准备走了。 ...
    瑨瑗阅读 207评论 5 3