19 Temmuz 2018 Perşembe

TextView Sınıfı

getPaint metodu
Şöyle yaparız.
TextView textView = findViewById(R.id.my_text_view);

Float ascent = textView.getPaint().getFontMetrics().ascent;
setAutoLinkMask metodu
Şöyle yaparız.
TextView tv = ...;
tv.setAutoLinkMask(Linkify.WEB_URLS);
tv.setAutoLinkMask(Html.fromHtml("<a href=...">foo.jpg</a>"));
setCustomSelectionActionMode metodu
TextView'a basılı tutunca açılan menu'yü değiştirmek için kullanılır. Şöyle yaparız.
textView.setCustomSelectionActionModeCallback(new android.view.ActionMode.Callback() {
  @Override
  public boolean onCreateActionMode(android.view.ActionMode mode, Menu menu) {

    ...
    return true;
  }

  @Override
  public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
    ...
    return false;
  }

  @Override
  public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
    return false;
  }

  @Override
  public void onDestroyActionMode(ActionMode mode) {
    ...
  }
});
setMaxLines metodu
XML ile şöyle yaparız.
android:maxLines="1" 
setMovementMethod metodu
Şöyle yaparız.
tv.setMovementMethod(LinkMovementMethod.getInstance());
setOnClickListener metodu
Şöyle yaparız.
tv.setOnClickListener(new View.OnClickListener() {

  @Override
  public void onClick(View v) {
    ...
  }
});
setStyle metodu
Şöyle yaparız.
<TextView
  android:id="@+id/items_category"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:text="Category"
  style="@style/Category" />
styles.xml şöyledir.
<style name="Category">
  <item name="android:textColor">@android:color/black</item>
  <item name="android:textSize">40sp</item>
  <item name="android:background">#000000</item>
</style>

27 Haziran 2018 Çarşamba

JobScheduler Sınıfı

constructor
Şöyle yaparız.
JobScheduler scheduler = (JobScheduler) context.getSystemService
  (Context.JOB_SCHEDULER_SERVICE);
schedule metodu
Açıklaması şöyle.
Minimum duration between two schedule is around 15 minutes. You can easily query for this information using getMinPeriodMillis()
Açıklaması şöyle.
Note:
Attempting to declare a smaller period that this when scheduling a job will result in a job that is still periodic, but will run with this effective period.
Örnek
Şöyle yaparız.
jobScheduler.schedule(new JobInfo.Builder(MY_JOB_ID,
                new ComponentName(applicationContext, MyJob.class))
                .setPeriodic(syncInterval)
                .build());
Örnek
Şöyle yaparız.
JobScheduler scheduler = ...;

JobInfo job = new JobInfo.Builder(1, new ComponentName(context, MySchedulerService.class))
  .setMinimumLatency(...)
  .build();

scheduler.schedule(job);

Uri Sınıfı

Giriş
Şu satırı dahil ederiz.
import android.net.Uri;
Bu sınıf Java'daki java.net.URI sınıfı ile aynı işi yapıyor ancak daha performanslı.

encode metodu
Şu karakterler percent encoding'e tabidir. Yüzde işarati ve hexadecimal bir sayı şekline getirilirler.
%26 -> &

%2B -> +
Metodun imzası şöyle
Uri.encode(someParam)
fromFile metodu
Şöyle yaparız.
Uri.fromFile(new File(...));
getLastPathSegment metodu
Şöyle yaparız.
String fileName = Uri.parse(url).getLastPathSegment();
getPath metodu
String döndürür. Şöyle yaparız.
Uri takenPhotoUri = ...;
Bitmap takenImage = BitmapFactory.decodeFile(takenPhotoUri.getPath());
Şöyle yaparız.
Uri selectdFileUri = ...;
File file = new File(selectdFileUri.getPath());
parse metodu
Şöyle yaparız.
Uri uri = Uri.parse("file://...");
Şöyle yaparız.
Uri.parse("tel:123456789");

23 Mayıs 2018 Çarşamba

KeyPairGeneratorSpec.Builder Sınıfı

build metodu
Şöyle yaparız.
KeyPairGeneratorSpec.Builder keySpecBuilder = new KeyPairGeneratorSpec.Builder(context)
    .setAlias(keyName)
    .setSubject(new X500Principal("CN=" + keyName))
    .setSerialNumber(BigInteger.TEN)
    .setStartDate(start.getTime())
    .setEndDate(end.getTime())
    .setKeySize(RSA_KEY_SIZE);

KeyPairGeneratorSpec spec = keySpecBuilder.build();
KeyPairGenerator gen = KeyPairGenerator.getInstance("RSA", "AndroidKeyStore");
gen.initialize(spec);
gen.generateKeyPair();