vehbiakdogan

Senior Sofware Developer

android

Android Uygulamanın Ana Fontunu Değiştirme

Merhaba Arkadaşlar;

Androidde uygulamamıza temel bir font atamak isteyebiliriz ve bunu androidin kendi yetenekleriyle yapmak istersek işimiz bayağı bir zor olacaktır ama android uygulamanın ana fontunu değiştirmek  için geliştirilmiş bir kütüphane olan Calligraphy kütüphanesini kullanacağız.

Öncelikle kütüphaneyi projemize eklememiz gerekiyor. Projemize kütüphaneyi dahil etmemiz için build.gradle dosyasını açıyoruz ve dependencies bölümüne aşağıdaki compile kodunu ekleyip sağ üstten Sync Now diyoruz.

Kodumuz:

dependencies {
    compile 'uk.co.chrisjenx:calligraphy:2.1.0'
}

Sync Now dedikten sonra androidin özel klasörlerinden olan assets klasörü oluşturuyoruz. assets klasörü oluşturmak için:

app a sağ tıkla > New > Folder > Assets Folder şeklinde asset klasörü oluşturduk.

Assets Klasörü Oluşturma
Assets Klasörü Oluşturma

Assets klasörü içine şimdi de fonts klasörü oluşturalım. Bunun için
assets klasörüne sağ tıklayıp new > directory adımlarını takip edebilirsiniz.

 

Font klasörü de oluşturduktan sonra bu klasör içine kullanmak istediğimiz fontu atıyoruz. ben open sans attım.

Daha sonra fontumuzun çalışması için bir class oluşturuyoruz.

Ben Sınıf adına UygulamaFontu dedim siz istediğinizi diyebilirsiniz ama bir hata olmaması açısından UygulamaFontu olarak oluşturmanızı tavsiye ederim.

Daha sonra oluşturduğumuz sınıfı Application sınıfından kalıtıp onCreate methodunu kullanmamız gerekiyor. Bu kısmı biraz hızlı geçiyorum kod üzerinden bakarsak daha iyi olacak.


package vehbiakdogan.com.nobetcieczanebul;

import android.app.Application;

import uk.co.chrisjenx.calligraphy.CalligraphyConfig;
import vehbiakdogan.com.nobetcieczanebul.R;

/**
 * Created by vehbiakdogan on 19.2.2016.
 */
public class UygulamaFontu extends Application { // application sınıfından kalıttık
    public void onCreate() { // on create methodunu override ettik
        super.onCreate(); // ana onCreate Methodunu çalıştırdık
        // şimdi default font ayarlarımızı yapmaya başlıyoruz.

        CalligraphyConfig.initDefault(new CalligraphyConfig.Builder() // kütüphaneyi başlattık
                        .setDefaultFontPath("fonts/opensans/OpenSans-Regular.ttf") // font yolunu gösterdik
                        .setFontAttrId(R.attr.fontPath) // uygulamadaki tüm elemanlara font ataması burda yapılıyor.
                        .build() // ve build ettik 
        );


    }

}


Evet Arkadaşlar şimdi daha iyi anlamışsınızdır diye umuyorum 🙂

Evet geldik son adımımıza 🙂

Şimdi Androidmanifest.xml dosyamızı açıyoruz ve application tagının olduğu yere bir android:name değeri veriyoruz ve buraya bizim classımızın adını veriyoruz.

Kısaca eklemeniz gereken kod:

<application <!-- Bu Tagdan Sonra -->
        android:name=".UygulamaFontu" <!-- .classAdi şeklinde class adını ekliyorsunuz. -->
<!-- application tagının diğer kodlarına dokunmayınız. ! -->


şeklinde yapabilirsiniz. Örneğin benim AndroidManifest.xml dosyam:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="vehbiakdogan.com.denemeUygulama">

    <application
        android:name=".UygulamaFontu"
        android:allowBackup="true"
        android:icon="@mipmap/logokirmizi"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity
            android:name=".MainActivity"
            android:theme="@style/AppTheme.noActionBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>



Son olarakta attachBaseContext Methodumuzu fontun değişmesini istediğimiz Activity de çağırarak fontumuzun çalışmasını sağlayalım.
Örn. main Activity de çalışmasını istiyorsak MainActivity i açıp aşağıdaki şekilde düzenleyelim.


public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
    }
// bu method Fontumuzun bu activity de çalışmasını sağlar. 
    protected void attachBaseContext(Context newBase) {
        super.attachBaseContext(CalligraphyContextWrapper.wrap(newBase));
    }

}

Eğer adımları başarılı bir şekilde yaptıysanız artık uygulamanızın ana fontunu değiştirmiş olacaksınız.
Bol yazılımlı günler 🙂

Android

Android Genymotion OpenGL Hatası Ve Çözümü

Merhaba Arkadaşlar Androide Başlayacak vakti bulduğum ve bi bismillah diyeyim derken hemen karşıma birinci engel çıktı android için hızlı bir emülatör olan genymotionu kullanmaya başlayacakken emülatör çalışmadı ve yukarıdaki hatayı verdi.

Hataya bakacak olursak ekran kartımızın genymotionu desteklemediğini veya driverlerimizin güncel olmadığını söylüyor.
ama 4gb ekran kartım vardı ve sürücülerimde günceldi ama hala çalışmıyordu nette araştırma yaptım ve windowsun openGL yi bir güncelleme olarak görmediğini ve kullanmadığını biz bunu istersek kendi ekran kartımıza göre yükleyebileceğimizi öğrendim yani sonuç olarak bilgisayarımızda openGL olmadığı veya sürümü 2.0 dan küçük olduğu için biz bu hatayı alıyorduk bunun için ekran kartınızın modeline göre openGL yi sisteminize yükleyerek bu hatayı çözebilirsiniz.

yabancu dilim iyi değil bulduğum çözümü tam çevirememiş olabilirim Bulduğum Çözüm Metni :

First things first, OpenGL is not a library. It’s a drawing API for talking with the graphics drivers to make the GPU do nice things.

As such, OpenGL comes as part of the graphics drivers. Unfortunately Microsoft decided that they don’t like OpenGL and would not ship drivers fully equipped with modern OpenGL profiles through Windows’ built in driver update mechanism. Oh, yes, they added legacy support for OpenGL-1.4 (which was specified in 2002), thank you very much.

So you have to take things into your own hands. First step: Go to the control panel and open the Hardware Manager. In the section “Graphics Cards” you’ll find the name of your GPU. Most likely it will be made by one of Intel, Nvidia, AMD or ATI.

Depending on who made it you can find the drivers on

Select the drivers appropriate for your system, download and install them.

Since OpenGL is not a library the truly limiting factor is the GPU in your system. If your GPU doesn’t OpenGL-2 you’re SOL. However you’d have a really, really old GPU for that and Windows-8 would not even boot on a system with such a GPU that old. Update your GPU drivers and you should be fine.

Kaynak: http://stackoverflow.com/questions/23560545/genymotion-opengl-error#answer-23561229

AndroidSorun Ve Çözümler