一些知识点
一些知识点
CrazyManDF 发表于2年前
一些知识点
  • 发表于 2年前
  • 阅读 76
  • 收藏 1
  • 点赞 1
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

摘要: Android开发中的一些零碎知识点

##将十六进制 颜色代码 转换为int类型数值

Color.parseColor("#FF00FF")

## getColor在6.0中过时

MainActivity.this.getResources().getColor(R.color.colorTest)

用一下替换

ContextCompat.getColor(context, R.color.my_color)
//源码 public static final int getColor(Context context, int id) {         final int version = Build.VERSION.SDK_INT;     if (version >= 23) {                 return ContextCompatApi23.getColor(context, id);       
    } else                return context.getResources().getColor(id);  }
}

## SparseArray

SparseArray是android里为<Interger,Object>这样的Hashmap而专门写的class,目的是提高效率,其核心是折半查找函数(binarySearch)

## Listview的Adapter的转换

如果ListView没有headerView或者footerView的时候,与listView相关联的Adapter就是传进来的参数Adapter,如果有,就将原来的Adapter包装成HeaderViewListAdapter,HeaderViewListAdapter有个方法getWrappedAdapter,该方法能返回被包装的HeaderViewListAdapter的ListAdapter。

HeaderViewListAdapter headerViewListAdapter = (HeaderViewListAdapter) listView.getAdapter(); 
ContactAdapter contactAdapter = (ContactAdapter) headerViewListAdapter.getWrappedAdapter();

## 使用View做虚线分割线

drawable/line_dash.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
       android:shape="line"

    >
    <stroke android:color="@color/colorBlack"
            android:dashGap="2dp"
            android:dashWidth="5dp"
            android:width="1dp"
            />
    <size android:width="1dp" />
</shape>
布局文件中:(需要设置 layerType为software)
<View
        android:layout_width="match_parent"
        android:layout_height="2dp"
        android:background="@drawable/line_dash"
        android:layerType="software"
        />

4、Android api23 删除HttpClient 相关类

在Module的gradle.build文件添加依赖,和 packagingOptions,和 useLibrary 'org.apache.http.legacy'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "com.egrid.webdemo"
        minSdkVersion 16
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

     packagingOptions {
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/NOTICE.txt'
    }
    //会加载Andrdoid自带的jar包 org.apache.http.legacy.jar
     useLibrary 'org.apache.http.legacy'
}


dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.1.1'
    //下面这些不会起作用
    compile 'org.apache.httpcomponents:httpclient:4.3.6'
    compile 'org.apache.httpcomponents:httpcore:4.3.2'
}










共有 人打赏支持
粉丝 4
博文 67
码字总数 24473
×
CrazyManDF
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: