رفتن به مطلب
  • 0

تعیین فونت از طریق فایل xml ؟؟


حمید زارع

سوال

سلام

میشه داخل فایل xml که مربوط به طراحی لایوت هست فونت ویوها رو هم تعیین کرد ؟

فونتهای مورد نظر رو کجا باید بریزیم ؟

چطور آدرس بدیم و ...

 <TextView
        android:id="@+id/lbldes"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp"
        android:layout_marginRight="5dp"
        android:layout_marginLeft="5dp"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/lblsubjectname"
        android:textColor="@android:color/holo_green_dark"
        android:textSize="16sp"
        android:fontFamily="byekan"
        android:text="Test">
 </TextView>

من اینجوری نوشتم ولی فونت عوض نمیشه !!!

لینک ارسال
به اشتراک گذاری در سایت های دیگر

8 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

در در 1396/01/22, 17:13:54، arastooms گفته است :

سلام حمید جان 
این خط میگه که از فونت ) بی یکان ) استفاده بشه که اسم یه فونت هستش
 


  android:fontFamily="byekan"


حالا میتونی اسم فونت رو عوض کنی به فایل فونتی که داری 
مثلا به bnazanin که این هم یه فنت دیگه هست که میتونی از وب دانلود کنی 

فونتها رو بعد از دانلود مستقیم باید بریزی تو پوشه file برنامه 
تا کار کنه 

موفق باشی
 

ممنون ارسطو جان

ولی اگه دقت کنی در کدی که بالا گذاشتم من دقیقاً همین کارو کردم ولی فونت عوض نمیشه

من فکر می کنم یه کار اضافه تری باید بشه

یا یه فایل xml دیگه مث style یا ... نیاز هست

شما اینکارو کردی و جواب گرفتی ؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام حمید جان 
این خط میگه که از فونت ) بی یکان ) استفاده بشه که اسم یه فونت هستش
 

  android:fontFamily="byekan"


حالا میتونی اسم فونت رو عوض کنی به فایل فونتی که داری 
مثلا به bnazanin که این هم یه فنت دیگه هست که میتونی از وب دانلود کنی 

فونتها رو بعد از دانلود مستقیم باید بریزی تو پوشه file برنامه 
تا کار کنه 

موفق باشی
 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

دوستانی که XMl کار کردید لطفاً راهنمایی کنید ...

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام

من تا الان با XML فونت عوض نکردم

با کدای بیسیک عوض کنید، مشکلی ایجاد میشه برای کارتون؟

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

دوست عزیز شما نمیتونید همچین کاری رو به صورت معمول انجام بدین. یعنی راهش این نیست

برای این کار شما باید بیاین و یه کلاس از ویویی که میخواین مشثق کنین. بعد توی کلاس بیاین و به اون فونت بدین. به مثال زیر دقت کنید.

public class CustomButton extends Button {

    public CustomButton(Context context) {
        super(context);
        init();
    }
    public CustomButton(Context context, AttributeSet attrs) {
        super(context, attrs);
        init();
    }
    public CustomButton(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        init();
    }
    private void init(){
        Typeface normalTypeface =Typeface.createFromAsset(context.getAssets(),"fonts/IrSanc.ttf");
        setTypeface(normalTypeface);
    }
}

حالا باید بیاین و توی فایل xml به صورت همون معمولی اونو اد کنین

 <yourpackage.CustomButton
        android:layout_width="150dp"
        android:layout_marginTop="10dp"
        android:layout_below="@id/txtinp6"
        android:id="@+id/registerbtn"
        android:textColor="@color/white1"
        android:layout_centerInParent="true"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:background="@drawable/backbtn"
        android:text="...."/>

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

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 31 دقیقه قبل، محمدرضا شاهپیری گفته است :

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

من در بیسیک میخام اینکارو بکنم 

در واقع یه لیستی دارم که با استفاده از آریا لیست ویو آیتمها رو از دیتابیس میخونم و پر می کنم و ویوهای زیادی داره اگر خواسته باشم دونه دونه بهشون فونت بدم لیستم خیلی بد اسکرول میشه

موندم چه کنم !!!!

در 40 دقیقه قبل، شهاب اسکندری گفته است :

سلام

من تا الان با XML فونت عوض نکردم

با کدای بیسیک عوض کنید، مشکلی ایجاد میشه برای کارتون؟

 

شهاب جان گفتم مشکلم چیه

ولی بازم من فکر می کنم راهی داره

یعنی با xml با این که بلد نبودم همه کار کردم به جز این فونت ....

 

ببینید من با کدهای زیر لیستم رو پر می کنم

مشکل سر این فونت دادنها هست که کارو خراب می کنه

میخام این فونت هم با همون xml حلش کنم ...

Sub av_getview (rowView As Panel,Position As Int)
	Cur.Position=Position

	Dim p As Panel

	XML.LoadXmlLayout(p,"hazineh2")
	rowView.AddView(p,0,0,100%x,22%y)
	LblID.Text=Cur.GetString("Id")
	Dim jo As JavaObject = p
	
	LblRadif= jo.RunMethod("findViewById",Array(XML.GetResourceId("id","lblradif")))
	IntRadif=Position+1
	LblRadif.Typeface=Typeface.LoadFromAssets("byekan.ttf")

	LblRadif.Text=IntRadif
	
	
	lblsubjectname=jo.RunMethod("findViewById",Array(XML.GetResourceId("id","lblsubjectname")))
	lblsubjectname.Typeface=Typeface.LoadFromAssets("btrafcbd.ttf")
	lblsubjectname.Text=LstAllSubjectname.Get(Cur.GetInt("SubjectID"))
	
	LblDate=jo.RunMethod("findViewById",Array(XML.GetResourceId("id","lbldate")))
	LblDate.Typeface=Typeface.LoadFromAssets("byekan.ttf")
	Dim StrDate As String=Cur.GetString("Date")
	LblDate.Text=StrDate'GetDayName(StrDate)&" "&StrDate
	
	LblDes=jo.RunMethod("findViewById",Array(XML.GetResourceId("id","lbldes")))
	LblDes.Typeface=Typeface.LoadFromAssets("byekan.ttf")
	LblDes.Text=Cur.GetString("Des")
	

	LblValue=jo.RunMethod("findViewById",Array(XML.GetResourceId("id","lblvalue")))
	LblValue.Text=Cur.GetString("Value_FA")

	p.Tag=LblID.Text	

	
End Sub

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

آقا خودم مشکلمو حل کردم

اشکال من این بود که برای هر ویو فونت رو از حافظه صدا می زدم

LblDes.Typeface=Typeface.LoadFromAssets("byekan.ttf")

اومدم یه متغیر از نوع Typeface تعریف کردم و اونو به هر ویو اختصاص دادم

Dim TF As Typeface=Typeface.LoadFromAssets("byekan.ttf")

ممنون از راهنمایی همه دوستان به خصوص شهاب اسکندری عزیز :heart:

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...