Sách

Thứ Ba, 6 tháng 8, 2024

Transparent color hex

 

Danh sách mã transparent color hex

  • 100% — FF
  • 95% — F2
  • 90% — E6
  • 85% — D9
  • 80% — CC
  • 75% — BF
  • 70% — B3
  • 65% — A6
  • 60% — 99
  • 55% — 8C
  • 50% — 80
  • 45% — 73
  • 40% — 66
  • 35% — 59
  • 30% — 4D
  • 25% — 40
  • 20% — 33
  • 15% — 26
  • 10% — 1A
  • 5% — 0D
  • 0% — 00

Thứ Bảy, 10 tháng 4, 2021

Hàm mở task top khi sử dụng PiP


/**
* Bring up launcher task to front
*/
public static void navToLauncherTask(Context appContext) {
if (appContext != null && Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
ActivityManager activityManager = (ActivityManager)
appContext.getSystemService(Context.ACTIVITY_SERVICE);
// iterate app tasks available and navigate to launcher task (browse task)
if (activityManager != null) {
final List<ActivityManager.AppTask> appTasks;
appTasks = activityManager.getAppTasks();
for (ActivityManager.AppTask task : appTasks) {
final Intent baseIntent = task.getTaskInfo().baseIntent;
final Set<String> categories = baseIntent.getCategories();
if (categories != null && categories.contains(Intent.CATEGORY_LAUNCHER)) {
task.moveToFront();
return;
}
}
}
}
}

/**
* Bring up launcher task to front
*/
fun FragmentActivity?.navToLauncherTask() {
if (this == null || this.isFinishing) return
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
val activityManager = (getSystemService(AppCompatActivity.ACTIVITY_SERVICE) as ActivityManager)
val appTasks = activityManager.appTasks
for (task in appTasks) {
val baseIntent = task.taskInfo.baseIntent
val categories = baseIntent.categories
if (categories != null && (categories.contains(Intent.CATEGORY_LAUNCHER)
|| categories.contains(Intent.CATEGORY_DEFAULT))) {
task.moveToFront()
return
}
}
}
}

Thứ Năm, 7 tháng 5, 2020

Android: hàm insert danh bạ vào máy (android create new contact programming)


    public static void insertPhoneContact(String displayName, String number, Context context) {
        /*context is App or Activity*/
        ArrayList<ContentProviderOperation> operations = new ArrayList<ContentProviderOperation>();
        int contactIndex = operations.size();
        //Newly Inserted contact
        // A raw contact will be inserted ContactsContract.RawContacts table in contacts database.
        operations.add(ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT_URI)//Step1
                .withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, null)
                .withValue(ContactsContract.RawContacts.ACCOUNT_NAME, null)
                .build());

        //Display name will be inserted in ContactsContract.Data table
        operations.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)//Step2
                .withValueBackReference(ContactsContract.RawContacts.Data.RAW_CONTACT_ID, contactIndex)
                .withValue(ContactsContract.RawContacts.Data.MIMETYPE, ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE)
                .withValue(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME, displayName)
                .build());

        //Mobile number will be inserted in ContactsContract.Data table
        operations.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)//Step 3
                .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, contactIndex)
                .withValue(ContactsContract.RawContacts.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE)
                .withValue(ContactsContract.CommonDataKinds.Phone.NUMBER, number)
                .withValue(ContactsContract.CommonDataKinds.Phone.TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE)
                .build());
        boolean isSuccess = false;
        try {
            // We will do batch operation to insert all above data
            //Contains the output of the app of a ContentProviderOperation.
            //It is sure to have exactly one of uri or count set
            ContentProviderResult[] contentProvider = context.getContentResolver()
                    .applyBatch(ContactsContract.AUTHORITY, operations); //apply above data insertion into contacts list
            Log.e("insertPhoneContact", "result: " + contentProvider);
            isSuccess = contentProvider != null && contentProvider.length > 0;
        } catch (RemoteException e) {
            e.printStackTrace();
        } catch (OperationApplicationException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
        System.out.println("insertPhoneContact displayName: " + displayName + ", number:  " + number + ", isSuccess: " + isSuccess);
    }