Bài đăng

Đang hiển thị bài đăng từ Tháng 4, 2017

Android - Lambda Expression

Bước 1:Cài đặt JDK Để sử dụng trước tiên cần phải cài đặt JDK8 cho Java (Nếu đã cài đặt thì không cần) http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html Bước 2: Cấu hình trong build.gradle(app) defaultConfig { ... jackOptions { enabled true } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } Bước 3: Coding (VD) // bình thường button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Log.e("DO_WORK","1"); Log.e("DO_WORK","2"); } }); //lambda button.setOnClickListener(v -> { Log.e("DO_WORK","1"); Log.e("DO_WORK","2"); }); //bình thường button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Log.e("DO_WORK","1"); } }); //lambda button.setOnClickListener(v -> Log.e("DO_W

Android - QR Code reader - Quét QR Code trên Android Studio

Bước 1: Thêm dependency trong Build.Gradle compile 'com.journeyapps:zxing-android-embedded:3.5.0' Bước 2: Trong AndroidManifest.xml Thêm permission: <uses-permission android:name="android.permission.CAMERA"/> Trong thẻ application thêm đoạn sau để đặt chế độ thẳng đứng poitrait cho màn hình <activity android:name="com.journeyapps.barcodescanner.CaptureActivity" android:screenOrientation="portrait" tools:replace="screenOrientation" /> --> thêm xmlns:tools="http://schemas.android.com/tools" trong thẻ manifest Bước 3: Trong Activity // mở activity quét qrcode của thư viện private void openScannerActivity() { IntentIntegrator integrator = new IntentIntegrator(this); integrator.setPrompt("Quét mã QR");// hướng dẫn integrator.setOrientationLocked(false); integrator.setTimeout(30000);//giới hạn thời gian quét integrator.initiateScan(); } // xử lý kết quả trả về @Over

Android - Animation in Code - Một số Animation - hiệu ứng trong Android Studio

// mở rộng một view public static void expand(final View v) { v.measure(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); final int targetHeight = v.getMeasuredHeight(); // Older versions of android (pre API 21) cancel animations for views with a height of 0. v.getLayoutParams().height = 1; v.setVisibility(View.VISIBLE); Animation a = new Animation() { @Override protected void applyTransformation(float interpolatedTime, Transformation t) { v.getLayoutParams().height = interpolatedTime == 1 ? ViewGroup.LayoutParams.WRAP_CONTENT : (int) (targetHeight * interpolatedTime); v.requestLayout(); } @Override public boolean willChangeBounds() { return true; } }; // 1dp/ms a.setDuration((int) (targetHeight / v.getContext().getResources().getDisplayMetrics().density)); v.startAnimation(a); } // thu nhỏ lại public static void collapse(final View v) { final int initialHeight = v.getMeasuredHeight(); Animation a = new Animation() { @Override prote

Android - Remove Focus - Loại bỏ việc Edittext tự động hiện bàn phím

Thêm 2 thuộc tính vào viewgroup - layout chứa edittext: android:descendantFocusability="beforeDescendants" android:focusableInTouchMode="true"

Android - Language Lấy ngôn ngữ, địa điểm hiện tại của thiết bị

Sử dụng Locale: String locale = getResources().getConfiguration().locale.getCountry(); hoặc: String localeDis = getResources().getConfiguration().locale.getDisplayCountry(); hoặc: String displayLanguage=Locale.getDefault().getDisplayLanguage(); Sử dụng thông tin cung cấp từ SIM: TelephonyManager teleMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); if (teleMgr != null) {  String countryISOCode = teleMgr.getSimCountryIso(); }

Android - Các Implicit Intent thường được sử dụng trên Android Studio

1. Gửi Email (Contact trong các App) public void composeEmail ( String [] addresses , String subject ) {     Intent intent = new Intent ( Intent . ACTION_SENDTO );     intent . setData ( Uri . parse ( "mailto:" )); // only email apps should handle this     intent . putExtra ( Intent . EXTRA_EMAIL , addresses );     intent . putExtra ( Intent . EXTRA_SUBJECT , subject );     if ( intent . resolveActivity ( getPackageManager ()) != null ) {         startActivity ( intent );     } } 2. Gọi điện thoại - (Contact trong các App) public void dialPhoneNumber ( String phoneNumber ) {     Intent intent = new Intent ( Intent . ACTION_DIAL );     intent . setData ( Uri . parse ( "tel:" + phoneNumber ));     if ( intent . resolveActivity ( getPackageManager ()) != null ) {         startActivity ( intent );     } } 3. Mở cài đặt cần thiết cho App (wifi,location,....) public void openWifiSettings () {     Intent intent = new

Android - Custom font - Viết chữ thư pháp trên Android Studio

Bước 1: Tạo resource Đầu tiên tải font về để sử dụng: http://fontchu.com/font/categories/VNI/VNI-Thuphap1.ttf Trong thư mục của project tìm đến app-->src--> main, trong main ta tạo một thư mục tên assets. Trong assets tạo thêm một thư mục fonts, copy font vào thư mục fonts Bước 2: Sử dụng font trong activity Typeface custom_font = Typeface.createFromAsset(getAssets(), "fonts/your_font_name.ttf"); Ví dụ sử dụng font cho textView: tv.setTypeface(custom_font ); http://stackoverflow.com/questions/27588965/how-to-use-custom-font-in-android-studio

Android - Copy Parse Text - Sao chép text đơn giản trên Android Studio

private ClipboardManager myClipboard;  private ClipData myClip; myClipboard = (ClipboardManager)getSystemService(CLIPBOARD_SERVICE); // Sao chép String copyText="your_text"; myClip = ClipData.newPlainText("text", copyText);  myClipboard.setPrimaryClip(myClip); // dán  ClipData clipData = myClipboard.getPrimaryClip();   ClipData.Item item = clipData .getItemAt(0);   String parseText = item.getText().toString();

Android - Battery Chagre - Kiểm tra trạng thái pin của thiết bị trên Android Studio

IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);  Intent batteryStatus = registerReceiver(null, ifilter);  int status = batteryStatus.getIntExtra(BatteryManager.EXTRA_STATUS, -1); // điện thoại có đang cắm sạc hay không boolean isCharging = status == BatteryManager.BATTERY_STATUS_CHARGING || status == BatteryManager.BATTERY_STATUS_FULL; // Kiểm tra kết nối sạc int chargePlug = batteryStatus.getIntExtra(BatteryManager.EXTRA_PLUGGED,-1);  // đang sạc bằng kết nối USB boolean usbCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_USB;  // đang sạc bằng củ sạc boolean acCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_AC;