Android學習總結的tips

  1. CardView要在布局最外邊繁仁,不然陰影顯示不全

  2. 獲取app的目錄
    獲取當前程序路徑
    getApplicationContext().getFilesDir().getAbsolutePath();
    獲取該程序的安裝包路徑
    String path=getApplicationContext().getPackageResourcePath();
    獲取程序默認數(shù)據(jù)庫路徑
    getApplicationContext().getDatabasePath(s).getAbsolutePath();

  3. TextUtils.isEmpty(s) 判斷字符串s是否為雙空及皂,即null或者長度為0

  4. 獲取某一天是星期幾

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance();
c.setTime(format.parse(pTime));//pTime是我們的日期,格式"2016-03-04"
int i = c.get(Calendar.DAY_FOR_WEEK);

返回值1是星期日碱蒙,2是星期一誉结,以此類推

  1. 計算兩個日期之間的天數(shù)
    計算出兩個日期之間的毫秒數(shù)惩激,轉換成天數(shù)。
    private int getDays(String day1, String day2) {
        try {
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); 
            Date date1 = simpleDateFormat.parse(day1);
            Date date2 = simpleDateFormat.parse(day2);
            GregorianCalendar cal1 = new GregorianCalendar();
            GregorianCalendar cal2 = new GregorianCalendar();
            cal1.setTime(date1);
            cal2.setTime(date2);
            return (int)((cal2.getTimeInMillis()-cal1.getTimeInMillis())/(1000*3600*24));
        } catch (ParseException e) {
            e.printStackTrace();
            return -100;
        }
    }
  1. 存儲目錄
    package = Io.github.yuedev
//內(nèi)部存儲
context.getCacheDir
/data/data/Io.github.yuedev/cache
context.getFileDir
/data/data/Io.github.yuedev/files
context.getDir
/data/data/Io.github.yuedev
//外部存儲
context.getExternalCacheDir
/sdcard/Android/data/io.github.yuedev/
cachecontext.getExternalFilesDir
/sdcard/Android/data/Io.gothub.yuedev/files
Environment.getExternalStorageDirectory
/sdcard/
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MOVIES)
/sdcard/Movies
  1. API21以上使用舊版本的DatePicker樣式
    API21(Lolipop)開始引入MD風格的DatePicker获讳,如果我們想用之前的DatePicker樣式,在XML的datePicker里使用以下屬性
android:calendarViewShown="false"
android:datePickerMode="spinner"

注意活喊,僅能在API21以上只用android:datePickerMode屬性丐膝。

8.想給Fragment傳遞參數(shù)的話,不要用帶參數(shù)構造方法,F(xiàn)ragment最好只有默認的無參構造方法帅矗。傳參數(shù)用setArguments()方法偎肃。

9.利用String.split()拆分字符串,利用replace()修改字符串浑此。

String path = "sdcard/test.mp2";
String[] strings = path.split("/");

這樣strings數(shù)組內(nèi)容就是sdcard和test.mp2

String fileName = strings[1].replace("mp2", "mp3");

這樣累颂,fileName的值就是test.mp3

10.TextView內(nèi)容過多顯示省略號,用ellipsize屬性凛俱。比如在xml里:

android:ellipsize="end"

11.設計支持庫com.android.support:design在28版本后新增了幾種view紊馏,比如MaterialCardView和MaterialButton,其中MatreialCardView比之前的CardView多了幾種常用屬性最冰,比如stroke描邊瘦棋。x

    app:cardCornerRadius="10dp"  <!--cardview的圓角角度-->
    app:cardElevation="0dp"           <!--cardview的高度-->
    app:strokeWidth="1dp"              <!--cardview外描邊線的寬度-->
    app:strokeColor="@android:color/darker_gray"<!--cardview外描邊線的顏色-->
    app:cardBackgroundColor="@android:color/holo_orange_light"<!--cardview卡片的顏色-->

12.RecyclerView視圖錯亂
如果在自己定義的adapter或者viewHolder里數(shù)據(jù)源有if的時候,一定跟上一個else暖哨,這樣保證每次復用都會進行一次賦值赌朋。詳細見下邊這篇文章。
http://www.reibang.com/p/6b990f339f49

        public void bind(Note note) {
            mNote = note;
            mCardView.setCardBackgroundColor(getResources().getColor(mNote.getColorResId()));

            //這里mNote的背景如果是白色篇裁,給mCardView描邊沛慢。
            //一定要在else里給不是白色背景的mCardView設置描邊寬度為0,不然會出現(xiàn)描邊錯亂达布。
            if (mNote.getColorResId() == R.color.backgroundColor0) {
                mCardView.setStrokeColor(getResources().getColor(R.color.defStrokeColor));
                mCardView.setStrokeWidth(3);
            } else {
                mCardView.setStrokeWidth(0);
            }
        }

13.TextView的fontFamily可以定義字體团甲,每個api的字體可能稍有不同,具體在SDK文件夾的platform文件夾下里邊的font.xml查看黍聂,貌似對中文不起作用躺苦。textAppearance屬性可以使用google推薦的字體樣式,如大小顏色等产还,api21可以用material標準匹厘,api21以下用appcomat的標準也很好。

  1. 在用tint改變view的顏色時脐区,經(jīng)常需要用到TintList類型愈诚,一般是用ColorStateList.valueOf(colorId)方法。這里的colorId不能直接用我們的resId牛隅,需要先用ContextCompat.getColor(context, resId)獲取colorId炕柔。
val colorId = ContextCompat.getColor(imageView.context, resId)
ImageViewCompat.setImageTintList(imageView, ColorStateList.valueOf(colorId))

或者

ImageViewCompat.setImageTintList(imageView,  ContextCompat.getColorStateList(imageView.context, resId)

具體見官方的databinding demo
https://codelabs.developers.google.com/codelabs/android-databinding/

推薦閱讀
http://kaywu.github.io/2016/07/17/Android-Storage-Note/

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市媒佣,隨后出現(xiàn)的幾起案子匕累,更是在濱河造成了極大的恐慌,老刑警劉巖默伍,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件欢嘿,死亡現(xiàn)場離奇詭異授霸,居然都是意外死亡,警方通過查閱死者的電腦和手機际插,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進店門碘耳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人框弛,你說我怎么就攤上這事辛辨。” “怎么了瑟枫?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵斗搞,是天一觀的道長。 經(jīng)常有香客問我慷妙,道長僻焚,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任膝擂,我火速辦了婚禮虑啤,結果婚禮上,老公的妹妹穿的比我還像新娘架馋。我一直安慰自己狞山,他們只是感情好,可當我...
    茶點故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布叉寂。 她就那樣靜靜地躺著萍启,像睡著了一般。 火紅的嫁衣襯著肌膚如雪屏鳍。 梳的紋絲不亂的頭發(fā)上勘纯,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天,我揣著相機與錄音钓瞭,去河邊找鬼驳遵。 笑死,一個胖子當著我的面吹牛降淮,可吹牛的內(nèi)容都是我干的超埋。 我是一名探鬼主播搏讶,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼佳鳖,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了媒惕?” 一聲冷哼從身側響起系吩,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎妒蔚,沒想到半個月后穿挨,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體月弛,經(jīng)...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年科盛,在試婚紗的時候發(fā)現(xiàn)自己被綠了帽衙。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,711評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡贞绵,死狀恐怖厉萝,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情榨崩,我是刑警寧澤谴垫,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站母蛛,受9級特大地震影響翩剪,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜彩郊,卻給世界環(huán)境...
    茶點故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一前弯、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧秫逝,春花似錦博杖、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至前方,卻和暖如春狈醉,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背惠险。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工苗傅, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人班巩。 一個月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓渣慕,卻偏偏與公主長得像,于是被迫代替她去往敵國和親抱慌。 傳聞我的和親對象是個殘疾皇子逊桦,可洞房花燭夜當晚...
    茶點故事閱讀 44,611評論 2 353

推薦閱讀更多精彩內(nèi)容