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 Tips 1)