Toolbar Padding

Merhabalar, Custom Toolbar yaparken soldan default olarak bir boşluk gelmektedir. Bu boşluğu ayarlamak veya silmek için layout.xml dosyanızda <Toolbar> etiketinin arasına;

app:contentInsetEnd="16dp"

app:contentInsetStart=“16dp"

yazmanız yeterli olacaktır.

 

Android Transparan Renk Kodları

Aşağıda yüzde kaç transparan eklemek istiyorsanız renk kodlarınızın başına eklemeniz gereken renk kodları bulunmaktadır.

  • 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

Okumaya devam et

Volley ile Bearer Token Authentication

Volley kütüphanesini kullanarak web servisten veri çeken arkadaşlar bearer token web api  ile çalışırken genelde 400 Bad Request hatası almaktadırlar. Bu hatayı zamanında almış ve hiç bir yerde çözümünü bulamayıp uzun zaman harcamış biri olarak sizinle düzgün çalışan kod örneğini paylaşmak istedim. Örnek kod yapısı aşağıdaki gibidir. Aşağıdaki kodlar örnek bir login girişi yaptığımız ekranın servis kodlarıdır.

 

 

[java]
public void getToken(final Activity activity, final String paramUsername, final String paramPassword) {
String tag_json_obj = "getToken";

final
String body = "username=" + paramUsername + "&password=" + paramPassword + "&grant_type=password";

StringRequest jsonObjReq = new StringRequest(Request.Method.POST,
WebUrls.getToken,
new Response.Listener<String>() {

@Override
public void onResponse(String strResponse) {
Log.d("RESPONSE", strResponse.toString());

JSONObject response;

try {
response = new JSONObject(strResponse);

if (strResponse.contains("error")) {
error = response.getString("error");
error_description = response.getString("error_description");

if (error.equals("invalid_grant")) {
Toast.makeText(context, error_description, Toast.LENGTH_LONG).show();
}
} else {

access_token = response.getString("access_token");
token_type = response.getString("token_type");
expires_in = response.getInt("expires_in");

Log.e("TOKEN", "Bearer " + access_token);
}

} catch (JSONException e) {
e.printStackTrace();
Toast.makeText(context,
"Error: " + e.getMessage(),
Toast.LENGTH_LONG).show();
}

}
}, new Response.ErrorListener() {

@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d("Error: " + error.getMessage());
SharedComponent.pDialog.hide();
if (error instanceof TimeoutError || error instanceof NoConnectionError) {
Toast.makeText(context, error.getMessage(), Toast.LENGTH_LONG).show();
} else if (error instanceof AuthFailureError) {
Toast.makeText(context, error.getMessage(), Toast.LENGTH_LONG).show();
} else if (error instanceof ServerError) {
Toast.makeText(context, error.getMessage(), Toast.LENGTH_LONG).show();
} else if (error instanceof NetworkError) {
Toast.makeText(context, error.getMessage(), Toast.LENGTH_LONG).show();

} else if (error instanceof ParseError) {
Toast.makeText(context, error.getMessage(), Toast.LENGTH_LONG).show();

}

}

}) {

public byte[] getBody() throws AuthFailureError {

return body.getBytes();
}

@Override
public String getBodyContentType() {

return "application/x-www-form-urlencoded";
}

@Override
public Map<String, String> getHeaders() throws AuthFailureError {
HashMap<String, String> headers = new HashMap<String, String>();
headers.put("Accept", "application/json");

return headers;
}

@Override
protected String getParamsEncoding() {
return "utf-8";
}
};

// Adding request to request queue
AppController.getInstance().addToRequestQueue(jsonObjReq, tag_json_obj);
}
[/java]

Geçmiş Activity’leri Kapatma

Android uygulamalarda ekran geçişleri ve ekran yönetimi önemli bir konudur. Genelde üyelik işlemlerini yaptıktan sonra ana ekrana geçerken önceden açılmış olan tüm ekranların kapatılması gerekmektedir. Bu işlemi

finishAffinity();

metodu ile basitçe yapabilirsiniz. Örnek kullanıma bakacak olursak;

[java] startActivity(new Intent(LoginActivity.this, MainActivity.class));
LoginActivity.this.finishAffinity();[/java]

Bol Android’li günler 🙂

Gradle ile yayına hazır .apk dosyası oluşturmak

1 — Projenizin .keystore dosyasını modülünüzün içine (build.gradledosyasının olduğu yere) koyun.

2 — Daha sonra build.gradle dosyasına .keystore u oluştururken kullandığınız bilgileri eklemeniz gerekmektedir. (signingConfigs)

3 — Ayrıca buildTypes ın içindeki release kısmına da bu eklediğiniz bilgilerin ulaşılabilmesi için o objenin referansını vermelisiniz.

4 — Son olarak da Android Studio’nun en altında komut satırını açın (projenizin ana klasöründe olduğunudan emin olun) ve bu komutu girin.

gradle installRelease // windows
./gradlew installRelease // mac


Oluşturulan .apk dosyasını modülünüzün içindeki /build/apk/ klasöründe bulabilirsiniz.