原创 Android音頻播放模式切換-外放、聽筒、耳機

切換播放模式需要使用AudioManager. 默認音頻播放使用的是外放(揚聲器)。 AudioManager audioManager = (AudioManager)context.getSystemService(Contex

原创 Git常用命令

拉取遠程代碼 master分支:git clone 倉庫地址 拉其他分支:git clone -b 分支名 倉庫地址 撤消 所有改動恢復到指定的版本: git reset --hard commit的id 單個文件恢復: git

原创 【Android Studio】Suggestion: use tools:overrideLibrary="xxx.xxxx"

錯誤場景 在項目中,導入其他moule後,編譯時提示以下錯誤。 Manifest merger failed : uses-sdk:minSdkVersion 14 cannot be smaller than version 16

原创 [Android Studio]please select android sdk

有時候導入一個Android項目後,運行時會出現以下提示。 看提示,原因是沒有檢查到Android SDK. 但是SDK是沒問題的。 最後google了一下,成功解決。 1.方法1 點擊File,Sync Project With

原创 mac下Android Studio 快捷鍵(持續更新)

以下快捷鍵都是系統默認的。   複製行:command+d          windows:ctrl+d 刪除行:command+退格鍵(delete)     windows:ctrl+y 生成get.set(Generate):co

原创 Android屏幕橫豎屏旋轉時,禁止Activity重啓,不重新走生命週期

默認情況下,Android設備屏幕方向改變時,會重啓正在運行的Activity,會依次走onDestroy()、onCreate(). 如果此時界面運行的是播放音頻或者是播放視頻,那麼旋轉後音頻或視頻狀態都會被銷燬並重置。 還好Andro

原创 解決android apk安裝後出現2個相同的應用圖標

如上圖所示,安裝完WebRTCDemo後,出現了2個完全一樣的應用程序,其中一個爲正常的,一個是不可用的。 原因 這是因爲Android程序進行打包編譯時,將所有的Manifext文件合併後,發現有多個Activity中存在以下Inte

原创 Invoke-customs are only supported starting with Android,Static interface methods are only supported

問題1 Invoke-customs are only supported starting with Android O (–min-api 26) Message{kind=ERROR, text=Invoke-customs a

原创 Program type already present: android.support.v13.view.DragAndDropPermissionsCompat

這是因爲三方庫或者module之間V13支持庫衝突了。 解決方法 在主工程的build.gradle的dependencies中添加以下代碼 configurations { all*.exclude group:

原创 動態切換EditText內容的顯示

有時候在註冊或登陸界面,產品經理會要求增加一個點擊顯示密碼的功能的。 可以使用Edittext的setInputType(InputType type)方法來實現。 示例 EditText etPsw = (EditText)findV

原创 mac在終端運行gradle命令出現Permission Denied的問題。

在mac中配置完gradle環境變量後,運行gradle 命令直接出現Permission Denied. 翻譯過來就是權限被拒絕了。 給文件添加運行權限就可以了. 步驟 1.進入命令所有的目錄 2.輸入命令 chmod a+x

原创 Android使用ViewPager做無限輪播,人爲滑動時停止

實現無限循環 使用取模,獲取到當前圖片所在的位置。 private class MyPagerAdapter extends PagerAdapter { private Context context;

原创 自己對Handler和HandlerThread的理解

共同點 都是用於多個線程間通信,通知其他線程某些任務已經處理完成。 區別 Handler主要是子線程通知Android的UI線程(主線程)更新界面。 HandlerThread主要是Android的UI線程(主線程)通知子線程中的han

原创 自定義頂部導航欄

創建自定義屬性 在res/values中創建名爲attrs的文件。 定義2個屬性,分別是左邊按鈕和右邊按鈕,值是drawable,所以格式應該爲refrence。 <?xml version="1.0" encoding="utf-8"

原创 Andriod中爲Dialog設置動畫

因爲Dialog不屬於View,所以不能使用View.startAnimation()。 看了Dialog的源碼發現,Dialog其實是Window實現的。所以我們可以使用Window設置動畫的方式來實現。 我們這裏使用AlertDai