منوهای نصب در پنل مدیریت

تغییر فونت برنامه توسط کاربر در اندروید

با سلام خدمت به شما بازدید کننده عزیز سایت ، امروز می خواهم آموزش کاربردی در زمینه برنامه نویسی اندروید رو در اختیارتون بذارم که در آخر این آموزش شما می توانید به کاربرانی که از برنامه شما استفاده می کنند اجازه دهید که خودشان فونت مورد دلخواه خود را انتخاب کنند و برنامه شما را با فونت مورد پسند خود مشاهده کنند ! پس این آموزش کاربردی را از دست ندهید ، با ما همراه باشید …

android-changefont

مرحله اول :

ابتدا در main.xml که در پوشه layout قرار دارد ، یک Button و یک TextView همانند شکل زیر ایجاد کنید :

1-android-changefont

Xml تصویر بالا را می توانید در زیر مشاهده کنید :

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#afafaf"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/txtShow"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dip"
        android:gravity="center"
        android:text="Developersian.com"
        android:textColor="#000"
        android:textSize="30dip" />

    <Button
        android:id="@+id/btnChangeFont"
        android:layout_width="fill_parent"
        android:layout_height="48dip"
        android:layout_marginLeft="4dip"
        android:layout_marginRight="4dip"
        android:layout_marginTop="20dip"
        android:background="@drawable/bt_black"
        android:text="Change Font"
        android:textColor="#fff" />

</LinearLayout>

 

خوب همانطور که در main.xml می بینید به TextView ، آی دی txtShow نسبت داده شده و همچنین به Button ، آی دی btnChangeFont .

 

مرحله دوم :

یک فایل xml از نوع layout به نام font در پوشه layout ایجاد کنید ، در این فایل همانند شکل زیر یک RadioGroup با 2 زیر مجموعه قرار می دهیم تا کاربر فقط یکی را انتخاب کند .

2-android-changefont

 

 

Xml تصویر بالا را می توانید در زیر مشاهده کنید :

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >



    <RadioGroup
        android:id="@+id/rg"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <RadioButton
            android:id="@+id/radio0"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="Tahoma" />

        <RadioButton
            android:id="@+id/radio1"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="Free Style"/>

    </RadioGroup>

</LinearLayout>

 

نام یک RadioButton را Tahoma و دیگری را FreeStyle می گذاریم .

 

مرحله سوم :

در پوشه assets یک پوشه به نام font میسازیم و داخل این پوشه 2 فونت مد نظر یعنی Tahoma و FreeStyle را قرار میدهیم .

3-android-changefont

 

مرحله چهارم :

یک کلاس جدید به نام font.java ایجاد کنید که extends به Activity باشد همچنین implements آن RadioGroup.OnCheckedChangeListener باشد .

در این فایل ابتدا یک RadioGroup به صورت public تغریف میکنم و نام آن را rg قرار میدهیم سپس در متد onCreate ،rg را با دستور setOnCheckedChangeListener جستجو می کنیم ، در این صورت هر گزینه ایکه برای RadioGroup انتخاب میشود ، با دستور Switch بررسی می شود . در این Switch می گوییم اگر RadioButton0 بود برامون فونت Tahoma رو قرار بده و اگر RadioButton1 فونت FreeStyle و قرار بده  . در آخر فونت مورد نظر در getFont ، return میشود .

package com.developersian.post.change_font;

import android.app.Activity;
import android.os.Bundle;
import android.widget.RadioGroup;


public class font extends Activity implements RadioGroup.OnCheckedChangeListener {

    public static String font = "Tahoma.TTF";
    RadioGroup           rg;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.font);

        rg = (RadioGroup) findViewById(R.id.rg);
        rg.setOnCheckedChangeListener(this);
    }


    @Override
    public void onCheckedChanged(RadioGroup group, int CheckedId) {

        switch (CheckedId) {

            case R.id.radio0:
                font = "Tahoma.TTF";
                finish();
                break;

            case R.id.radio1:
                font = "FreeStyle.TTF";
                finish();
                break;

        }

    }


    protected String getFont()
    {
        return font;
    }
}

 

مرحله پنجم :

در Activity اصلی برنامه ، که در اینجا ChangeFontActivity است، ابتدا Button را با آی دی مشخص شده در main.xml تعریف می کنیم ، سپس با setOnclickListener به آن می گوییم Activity دیگری را باز کند و در ادامه آن تابع setFace را ساخته ایم که این تابع وظیفه دارد فونت را از پوشه assets/font را بگیرد و جایگزین فونت txtShow کند

onResume هم زمانی اجرا میشه که فرم ها برای لحظاتی متوقف شودند که در این زمان کلاس فونت را تعریف کرده و فونت انتخاب شده را در setFace قرار میدهیم .

package com.developersian.post.change_font;

import android.app.Activity;
import android.content.Intent;
import android.graphics.Typeface;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;


public class ChangeFontActivity extends Activity {

    public String fonts = "Tahma.TTF";


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Button btnChangeFont = (Button) findViewById(R.id.btnChangeFont);
        btnChangeFont.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {

                Intent intent = new Intent(ChangeFontActivity.this, font.class);
                startActivity(intent);
                setFace();

            }
        });
    }


    protected void setFace() {

        Typeface face = Typeface.createFromAsset(getAssets(), "font/" + fonts + "");

        TextView txtShow = (TextView) findViewById(R.id.txtShow);
        txtShow.setTypeface(face);
        String str = (String) txtShow.getText().toString();
        txtShow.setText(str);

    }


    @Override
    protected void onResume() {
        super.onResume();
        font a = new font();
        fonts = a.getFont();
        setFace();
    }

}

 

مرحله پایانی :

در این مرحله باید Activity ، font را در AndroidManifest معرفی کنیم ، برای این کار کافی است کد زیر را در AndroidManifest قبل از </application> قرار دهید .

<activity android:name=".font" android:theme="@android:style/Theme.Dialog"></activity>

 

همانطور که مشاهده می کنید این Activity را از Theme Dialog انتخاب کرده ایم .

 

به همین راحتی ، خروجی برنامه را در زیر می توانید مشاهده کنید :

4-android-changefont

5-android-changefont

 

6-android-changefont

 

از این آموزش برای فونت های فارسی هم می توایند استفاده کنید .

همچنین اگر نیازمند به منبع خوبی از فونت های های فارسی با فرمت مناسب هستید به لینک زیر هم سری بزنید .

استفاده از فونت فارسی در طراحی سایت

2 پاسخ در "تغییر فونت برنامه توسط کاربر در اندروید"

  1. سلام . من چه جوری می تونم از تم متریال در برنامم استفاده کنم ؟ با تشکر

  2. سلام
    ممنون از آموزشتون
    من طبق این آموزش پیش رفتم اما فونت عوض نمی شه.
    می شه سورس برنامه رو قرار بدین.
    تشکر

ارسال یک پیغام

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

 

2017 © تمامي حقوق مطالب سايت Developersian محفوظ و همچنین استفاده از مطالب سایت با ذکر منبع بلامانع است.
X