發表文章

Android - 混淆後 Log 未消失

將APK反組譯後發現程式碼裡的Log清清楚楚的存在著... 於是參考官方的說明: https://developer.android.com/studio/build/shrink-code 將 app/build.gradle 內的 proguard-android.txt 改為使用 proguard-android-optimize.txt 並反組譯 後,證實Log不存在。 補上 proguard-rules.pro設定 -assumenosideeffects class android.util.Log {     public static *** d(...);     public static *** v(...);     public static *** i(...);     public static *** e(...); }

Android - TextView Html.fromHtml background-color 沒用

試著將TextView內某段文字加上背景色及文字顏色 首先嘗試了 tv_title.setText(Html.fromHtml("<span style='color:#FFFFFF;background-color:#2398f5;padding:0 8px;'>" + piece + "</span>")); 沒有效果...... 另尋他路,找到原生有提供一些Span可以使用 BackgroundColorSpan 設定背景色 ForegroundColorSpan 設定文字色 // 程式碼-------------------- SpannableString mText = new SpannableString("Text with a background color span"); // 套用第一個Span mText.setSpan(new BackgroundColorSpan(getResources().getColor(R.color.blue)), 12, 28, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); // 套用第二個Span mText.setSpan(new ForegroundColorSpan(Color.parseColor("#ffffff")), 12, 28, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); // 設定文字 tv_title.setText(mText); // 程式碼-------------------- 當然不只這些,有空再補上紀錄~ 參考: https://developer.android.com/reference/android/text/style/BackgroundColorSpan

Android - Webview href 開啟手機應用程式及傳值

在Android裡的Webview是不是能夠喚起手機裡的其他應用程式呢? web html 加入與APP對應的內容 測試開啟手機 zxing <a href=\"intent://scan/#Intent;scheme=zxing;package=com.google.zxing.client.android;S.browser_fallback_url=market://details?id=com.google.android.youtube;end\"> Take a QR code </a> 測試開啟手機 youtube <a href=\"intent://8xn9iq3lG_w/#Intent;scheme=vnd.youtube;package=com.google.android.youtube;S.browser_fallback_url=market://details?id=com.google.android.youtube;end;\">youtube or market</a> 使用參數 intent:    HOST/URI-path // Optional host    #Intent;       package=[string];       action=[string];       category=[string];       component=[string];       scheme=[string];    end; Chrome 說明:https://developer.chrome.com/multidevice/android/intents

Android Studio - :app:processDebugManifest 宣告集中不允許內容

錯誤訊息 Error:Execution failed for task ':app:processDebugManifest'. > com.android.manifmerger.ManifestMerger2$MergeFailureException: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; 宣告集中不允許內容。 解決方法 build.gradle內的classpath 'com.android.tools.build:gradle:2.3.0'改為classpath 'com.android.tools.build:gradle:2.2.3'

Android - drawable圓角框線

1.在drawable資料夾下新增xml <?xml version="1.0" encoding="utf-8"?> <shape     xmlns:android="http://schemas.android.com/apk/res/android"     android:shape="oval"     >     <!--     shape的類型含有:     1.rectangle - 長方形、矩形     2.oval - 橢圓形、卵形     3.line - 線     4.ring - 環形     -->     <!-- 圓角,Layout佈局圓角幅度設定值 -->     <corners         android:radius="15dp"         />     <!-- 框內底部顏色 -->     <solid         android:color="@color/dialog_button_dark"         />     <!-- padding內縮距離 -->     <padding         android:left="5dp"         android:right="5dp"         android:top="1dp"         android:bottom="1dp" ...

Android - 換頁動畫

1.在Actitivy上達到換頁動畫 overridePendingTransition (下一頁進入動畫,本頁結束動畫); overridePendingTransition(R.anim.slide_left_in, R.anim.slide_right_out); PS: 需加在finish()或startActivity(intent)後面。 2.在Fragment上達到換頁動畫 FragmentTransaction ft = manager.beginTransaction(); ft. setCustomAnimations (R.anim.slide_in_left, R.anim.slide_out_right); ft.replace(R.id.realtabcontent, new Fragment1()); ft.addToBackStack(null); ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE); ft.commitAllowingStateLoss(); PS: 若不需要換頁動畫可設為overridePendingTransition(0, 0);及setCustomAnimations(0, 0);

Android - OkHttp3連線 post應用

引用:compile 'com.squareup.okhttp3:okhttp:3.8.1' 1.基本應用 public static final MediaType MEDIA_TYPE_MARKDOWN             = MediaType.parse("text/x-markdown; charset=utf-8"); public static final MediaType JSON         = MediaType.parse("application/json; charset=utf-8"); private static final String IMGUR_CLIENT_ID = "..."; private static final MediaType MEDIA_TYPE_PNG = MediaType.parse("image/*"); private static final MediaType MEDIA_TYPE_VIDEO = MediaType.parse("video/*"); private static final OkHttpClient client = new OkHttpClient(); public static String queryJsonPost(String url, JSONObject jsonObj, Boolean hflag) {     String result = null;     Log.d("send_url", url);     String jsonObjStr = "";     try {         if (jsonObj != null) {             jsonObjStr = jsonObj.toString();         } else ...