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

تغییر نکردن سایز متن


imenz

سوال

سلام دوستان

من یه تنظیمات ساختم با این کد:


Sub Process_Globals
Dim Font As String
Dim Size As Int
End Sub

Sub Globals
    Dim Color As ColorPickerDialog
Private btncolor As Button
Private BtnSave As Button
Private FontSize As SeekBar
Private FontType As Spinner
Private Label1 As Label
Private Label2 As Label
Private Label3 As Label
Private Label4 As Label
Private Label5 As Label
Private OpenList As Button
End Sub

Sub Activity_Create(FirstTime As Boolean)
Activity.LoadLayout("LSetting")
FontType.AddAll(Array As String("B Nazanin","B Elham","B Farnaz","B Homa","B Kamran","B Mitra"))
Label4.TextSize=18
FontSize.Value = Size
Label1.Typeface=Typeface.LoadFromAssets("B Nazanin.ttf")
Label4.Gravity=Gravity.CENTER
Label2.Typeface=Typeface.LoadFromAssets("B Nazanin.ttf")
Label2.Gravity=Gravity.CENTER
Label3.Typeface=Typeface.LoadFromAssets("B Nazanin.ttf")
Label4.Typeface=Typeface.LoadFromAssets("B Nazanin.ttf")
Label4.Gravity=Gravity.CENTER
Label5.Typeface=Typeface.LoadFromAssets("B Nazanin.ttf")
End Sub
Sub FontType_ItemClick (Position As Int, Value As Object)
If Position = 0 Then
Label4.Typeface=Typeface.LoadFromAssets("B Nazanin.TTF")
End If
If Position = 1 Then
Label4.Typeface=Typeface.LoadFromAssets("B Elham.TTF")
End If
If Position = 2 Then
Label4.Typeface=Typeface.LoadFromAssets("B Farnaz.TTF")
End If
If Position = 3 Then
Label4.Typeface=Typeface.LoadFromAssets("B Homa.TTF")
End If
If Position = 4 Then
Label4.Typeface=Typeface.LoadFromAssets("B Kamran.TTF")
End If
If Position = 5 Then
Label4.Typeface=Typeface.LoadFromAssets("B Mitra.TTF")
End If
End Sub
Sub FontSize_ValueChanged (Value As Int, UserChanged As Boolean)
Label4.TextSize=Value
Label5.Text=Value
End Sub
Sub btncolor_Click
 Color.Show("کلکسیون رنگ ها","انتخاب","انصراف","",LoadBitmap(File.DirAssets,"Colors.png"))
 btncolor.Typeface=Typeface.LoadFromAssets("B Nazanin.ttf")
 code.saveData("setting.txt","FontColor",Color.RGB)
 Label4.TextColor=Color.RGB
 btncolor.TextColor=Color.RGB
End Sub
Sub BtnSave_Click
Font=FontType.SelectedItem
Size=FontSize.Value
Dim list1 As List
list1.Initialize
list1.Add(Font)
list1.Add(Size)
File.WriteList(File.DirInternal,"Settings.stg",list1)
ToastMessageShow("تنظیمات با موفقیت اعمال شد",False)
StartActivity(Welcome)
Activity.Finish
End Sub

 

و توی اکتویتی یی که مطالبم هست (مطالب با دیتابیس ساخته شده) این کدهارو گذاشتم:
 

Sub Process_Globals
'These global variables will be declared once when the application starts.
'These variables can be accessed from all modules.
Dim s As SQL
End Sub

Sub Globals
'These global variables will be redeclared each time the activity is created.
'These variables can only be accessed from this module.
Private ScrollView1 As ScrollView
Private lblttl3 As Label
Private lblttl4 As Label
End Sub

Sub Activity_Create(FirstTime As Boolean)

Activity.LoadLayout("L1")
If File.Exists(File.DirInternal,"L1.db")=False Then
File.Copy(File.DirAssets,"L1.db",File.DirInternal,"L1.db")
End If

If s.IsInitialized=False Then
s.Initialize(File.DirInternal,"L1.db",False)
End If
lblttl3.Gravity=Gravity.CENTER
lblttl3.TextColor=Colors.White
lblttl4.Gravity=Gravity.CENTER
lblttl4.TextColor=Colors.Red
show
End Sub

Sub show

Dim sh As Int
sh=0
Dim cur As Cursor
cur=s.ExecQuery("Select * from L1")

Dim h As Int
h=5%y
For i=0 To cur.RowCount-1
cur.Position=i
If cur.GetInt("type")=0 Then
Dim lbl As Label
lbl.Initialize("")
lbl.Text=cur.GetString("value")
lbl.Gravity=Gravity.RIGHT
lbl.TextSize=18
lbl.Typeface=Typeface.LoadFromAssets("b nazanin.ttf")
lbl.TextColor=Colors.Black


If File.Exists(File.DirInternal,"Settings.stg")=True Then
Dim list1 As List
list1=File.ReadList(File.DirInternal,"Settings.stg")
Setting.font=list1.Get(0)
Setting.size=list1.Get(1)
Dim a As String
a = code.getData("setting.txt","FontColor")
lbl.TextColor = code.getData("setting.txt","FontColor")
Else
Setting.font="b nazanin.ttf"
Setting.size=25
End If
lbl.Typeface=Typeface.LoadFromAssets(Setting.font &".ttf")

ScrollView1.Panel.AddView(lbl,2%x,h,96%x,0)
Dim su As StringUtils
lbl.Height=su.MeasureMultilineTextHeight(lbl,lbl.Text)
h=h+lbl.Height+2%y
sh=sh+lbl.Height
ScrollView1.Panel.Height=sh
Else
Dim img As ImageView
img.Initialize("")
img.Bitmap=Namayesh(i)
Dim bp As BitmapExtended
bp.initialize("")
ScrollView1.Panel.AddView(img,12%x,h,bp.getwidth(img.Bitmap),bp.getheight(img.Bitmap))
img.Gravity=Gravity.FILL
h=h+bp.getheight(img.Bitmap)+2%y

sh=sh+bp.getheight(img.Bitmap)
ScrollView1.Panel.height=sh

End If
ScrollView1.Panel.Height=ScrollView1.Panel.Height+30%y
Next
End Sub

Sub Namayesh(position As String) As Bitmap
Dim cur As Cursor
cur=s.ExecQuery("Select value from L1")
cur.position=position

Dim bytes() As Byte
bytes=cur.GetBlob("value")

Dim input As InputStream
input.InitializeFromBytesArray(bytes,0,bytes.Length)

Dim b As Bitmap
b.Initialize2(input)
input.Close
Return(b)
End Sub

همه ی تنظیمات مثل رنگ و نوع فونت روی متنم اعمال میشه به جز اندازه !!! اندازه هیچ تغییری نمیکنه ...
ممنون میشم یه نگاه کوچیک بکنید :gol:
لینک ارسال
به اشتراک گذاری در سایت های دیگر

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

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

خیلی هم سادست.به شرط کار تخصصی

من که کد گذاشتم

اگه سادست لطف کن اونارو یه ادیت کن بذار همینجا

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

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

 

خیلی ساده هست

 

توی لایوت ی سیک بار اظافه کنید

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

 

در

Sub Global

	Private SeekBar1 As SeekBar
	Private Label1 As Label

سپس در

Activity_Create


	SeekBar1.Max = 90
	SeekBar1.Value = 10

و در

Sub SeekBar1_ValueChanged
   

Sub SeekBar1_ValueChanged (Value As Int, UserChanged As Boolean)
	Label1.TextSize=Value
End Sub

1.PNG

 

2.PNG

 

کار هم میده

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

:)

نه داداش گلم دیگه در این حد مبتدی نیستم

متن لیبلم توی اکتیویتی setting عوض میشه ولی توی اکتیویتی یی که مطالبم هست تغییری صورت نمیده

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

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

کتابخونه مجیک بوک

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

خوب اگه اندازه متنت تو اکتیویتی های مختلف تغییر نمیکنه بیا تواکتیویتی تنظیمات رویداد Sub SeekBar1_ValueChanged زیر اینو File.WriteString(File.DirInternal,"s.txt",Value) بنویس مثل کد زیر

Sub SeekBar1_ValueChanged (Value As Int, UserChanged As Boolean)
	
	Label1.TextSize = SeekBar1.Value
	
	File.WriteString(File.DirInternal,"s.txt",Value)
End Sub

بعد بیا تو رویداد process global همون اکتیویتی یه متغییر string تعریف کن

Sub Process_Globals
	'These global variables will be declared once when the application starts.
	'These variables can be accessed from all modules.

	Dim a As string

End Sub

بعد بیا متغییر string بالا رو تو رویداد activitycreate همون اکتیویتی تنظیمات مساوی زیر قرار بده

	If File.Exists(File.DirInternal,"s.txt")=True Then
	a=File.ReadString(File.DirInternal,"s.txt")
	SeekBar1.Value=a
	End If

بعدشم بیا تو اکتیویتی های متنت اون متغیرو بخون مثل کد زیر

label1.textsize = tanzim.a

اینجا tanzim همون اکتیویتی تنظیماته

تمام

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

خوب اگه اندازه متنت تو اکتیویتی های مختلف تغییر نمیکنه بیا تواکتیویتی تنظیمات رویداد Sub SeekBar1_ValueChanged زیر اینو File.WriteString(File.DirInternal,"s.txt",Value) بنویس مثل کد زیر

Sub SeekBar1_ValueChanged (Value As Int, UserChanged As Boolean)
	
	Label1.TextSize = SeekBar1.Value
	
	File.WriteString(File.DirInternal,"s.txt",Value)
End Sub

بعد بیا تو رویداد process global همون اکتیویتی یه متغییر string تعریف کن

Sub Process_Globals
	'These global variables will be declared once when the application starts.
	'These variables can be accessed from all modules.

	Dim a As string

End Sub

بعد بیا متغییر string بالا رو تو رویداد activitycreate همون اکتیویتی تنظیمات مساوی زیر قرار بده

	If File.Exists(File.DirInternal,"s.txt")=True Then
	a=File.ReadString(File.DirInternal,"s.txt")
	SeekBar1.Value=a
	End If

بعدشم بیا تو اکتیویتی های متنت اون متغیرو بخون مثل کد زیر

label1.textsize = tanzim.a

اینجا tanzim همون اکتیویتی تنظیماته

تمام

 

پوریا جان بسیار عالی

فقط ممنون میشم اگه طبق کد هایی که گذاشتم همین کدهارو بنویسی و برام بذاری، چون همین کدهاتو اسم هاشو با آبجکت های خودم تطبیق دادم و گذاشتم ولی فقط Error دیدم و بس !!!

post-2580-0-63605700-1439148542_thumb.png

post-2580-0-04370400-1439148689_thumb.png

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

ببینید یه راه سادتر شما بیا ایندفعه تو رویداد process global یه متغیر string تعریف کن

Sub Process_Globals
	'These global variables will be declared once when the application starts.
	'These variables can be accessed from all modules.

	Dim a As string

End Sub

بعد تو رویداد Sub SeekBar1_ValueChanged بیا اون متغیر string رو بنویس

Sub SeekBar1_ValueChanged (Value As Int, UserChanged As Boolean)
	
	a = SeekBar1.Value
End Sub

بعد تو اکتیویتی متننت بیا سایز لیبل رو مساوی اون متغییر string قرار بده

Label1.TextSize = tanzim.a

اینم امتحان کن ببین جواب میده

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

من در کدهای  پستهای بالا از متغییر string استفاده کردم که جواب داد ولی در حالت کلی فکر کنم باید از int استفاده بشه

اما طبق کدهای شما بیا این کدها رو با کدهای خودت عوض کن

Sub Process_Globals
Dim Font As String
Dim Size As Int
dim p12 as int
End Sub
Sub FontSize_ValueChanged (Value As Int, UserChanged As Boolean)
Label4.TextSize=Value
Label5.Text=Value
p12 = value
End Sub
Dim h As Int
h=5%y
For i=0 To cur.RowCount-1
cur.Position=i
If cur.GetInt("type")=0 Then
Dim lbl As Label
lbl.Initialize("")
lbl.Text=cur.GetString("value")
lbl.Gravity=Gravity.RIGHT
lbl.Typeface=Typeface.LoadFromAssets("b nazanin.ttf")
lbl.TextColor=Colors.Black
lbl.textsize=p12

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

من در کدهای پستهای بالا از متغییر string استفاده کردم که جواب داد ولی در حالت کلی فکر کنم باید از int استفاده بشه

اما طبق کدهای شما بیا این کدها رو با کدهای خودت عوض کن

Sub Process_Globals
Dim Font As String
Dim Size As Int
dim p12 as int
End Sub
Sub FontSize_ValueChanged (Value As Int, UserChanged As Boolean)
Label4.TextSize=Value
Label5.Text=Value
p12 = value
End Sub
Dim h As Int
h=5%y
For i=0 To cur.RowCount-1
cur.Position=i
If cur.GetInt("type")=0 Then
Dim lbl As Label
lbl.Initialize("")
lbl.Text=cur.GetString("value")
lbl.Gravity=Gravity.RIGHT
lbl.Typeface=Typeface.LoadFromAssets("b nazanin.ttf")
lbl.TextColor=Colors.Black
lbl.textsize=p12

بازم ممنون

کد هارو کپی کردم، بدون error اجرا شد ولی متأسفانه بازم سایز فونت تغییری نکرد

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

فکر کنم بهتره اندازه فونت لیبل رو توی دیتابیس ذخیره کنی بعدش توی کد Resume از اکتیویتیت خصوصیت TextSize از لیبل رو با اندازه فونتی که  در دیتابیس ذخیره شد تنظیم کنی. بعد از این کار هم نیاز هست ارتفاع لیبل رو با استفاده از تابع MeasureMultilineTextHeight از کتابخانه stringUtils تغییر بدی. اینطوری:")



Sub Activity_Resume
    cursor2 = sql1.ExecQuery("SELECT fontSize FROM tblSetting")
    cursor2.Position = 0'first row
    Label1.textSize=cursor2.GetInt("fontSize")

  Label1.Height= su1.MeasureMultilineTextHeight(Label1,Label1.text )
End Sub

کد نوار لغزان هم اینو بذار :

Sub SeekBar1_ValueChanged (Value As Int, UserChanged As Boolean)
'    Label2.Height= su.MeasureMultilineTextHeight(Label2,Label2.Text)
'	Label2.TextSize=Value
	SQL1.ExecNonQuery("UPDATE tblSetting Set fontSize= '" & Value & "'")
	
End Sub

کتابخونه tringUtils هم باید تو بخش lib تیک بزنی(اگه نبود باید به C:\Program Files (x86)\Anywhere Software\Basic4android\Libraries اضافه کنی فایل StringUtils.jar و StringUtils.xml رو)

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

فکر کنم بهتره اندازه فونت لیبل رو توی دیتابیس ذخیره کنی بعدش توی کد Resume از اکتیویتیت خصوصیت TextSize از لیبل رو با اندازه فونتی که در دیتابیس ذخیره شد تنظیم کنی. بعد از این کار هم نیاز هست ارتفاع لیبل رو با استفاده از تابع MeasureMultilineTextHeight از کتابخانه stringUtils تغییر بدی. اینطوری:")



Sub Activity_Resume
    cursor2 = sql1.ExecQuery("SELECT fontSize FROM tblSetting")
    cursor2.Position = 0'first row
    Label1.textSize=cursor2.GetInt("fontSize")

  Label1.Height= su1.MeasureMultilineTextHeight(Label1,Label1.text )
End Sub
کد نوار لغزان هم اینو بذار :
Sub SeekBar1_ValueChanged (Value As Int, UserChanged As Boolean)
'    Label2.Height= su.MeasureMultilineTextHeight(Label2,Label2.Text)
'	Label2.TextSize=Value
	SQL1.ExecNonQuery("UPDATE tblSetting Set fontSize= '" & Value & "'")
	
End Sub
کتابخونه tringUtils هم باید تو بخش lib تیک بزنی(اگه نبود باید به C:\Program Files (x86)\Anywhere Software\Basic4android\Libraries اضافه کنی فایل StringUtils.jar و StringUtils.xml رو)
ممنون از راهنماییت سجاد جان

ولی من تنها کاری که بلدم با دیتابیس بکنم اینه که متن و عکس بذارم، بلد نیستم بهش سایز بدم

تازه شروع کردم و این کار خیلی گستردست

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

بایگانی شده

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

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

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