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

ارتفاع scrollview با عکس و متن


bahadorks

سوال

سلام


دوستان این کدهای منه


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


یعنی عکسه کتن رو میبره پایین و اسکرول هم بزرگتر نمیشه.


چیکار کنم؟




Sub Process_Globals
Dim SQL1 As SQL
Dim Fasl As String
Dim cur As Cursor
End Sub

Sub Globals

Private ScrollView1 As ScrollView
Private Button1 As Button
Private checkme As EditText
Private lbltitr As Label
Dim PanelHeight As Int
Dim text As String
Dim StrUtil As StringUtils
Dim ht As Float
Dim myfont As Typeface
Dim lblmatn As Label
Dim ImageView1 As ImageView
Dim label1 As Label
Dim su As StringUtils
Dim TextSetting1 As TextSetting
Dim i As PhoneIntents
Private ListView1 As ListView

End Sub

Sub Activity_Create(FirstTime As Boolean)

Activity.LoadLayout("TXT_List")

checkme.Initialize("chechme")

checkme.text="1"

End Sub

Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub



Sub Button1_Click


Activity.RemoveAllViews
Activity.LoadLayout("txt - matni")
PanelHeight=0

If File.Exists(File.DirInternal,"n.db")= False Then
File.Copy(File.DirAssets,"n.db",File.DirInternal,"n.db")
End If
If SQL1.IsInitialized=False Then SQL1.Initialize(File.DirInternal,"n.db",False)
cur=SQL1.ExecQuery("SELECT * FROM Tbl1 WHERE id")
cur.Position=0


Bitmap1.Initialize(File.DirAssets,"1.jpg")
myfont = Typeface.LoadFromAssets("f1.ttf")


ImageView1.Initialize("Imageview1") 'اضافه کردن عکس اول'
ScrollView1.Panel.AddView(ImageView1,((Activity.Width/2)-(Bitmap1.Width/4)),25dip,(Bitmap1.Width/2),(Bitmap1.Height/2))
ImageView1.Bitmap=Bitmap1
ImageView1.Gravity=Gravity.FILL
PanelHeight=(Bitmap1.Height/2)+45dip



label1.Initialize("Label1")
label1.text=cur.GetString("ro2")
label1.TextColor=Colors.Black
label1.Gravity=Gravity.RIGHT
label1.TextSize=18


ScrollView1.Panel.AddView(label1,0,ImageView1.Height,ScrollView1.Width,ScrollView1.Height)
ScrollView1.Panel.Height=su.MeasureMultilineTextHeight(label1,label1.text)
TextSetting1.LongText(label1,label1.text,18,ScrollView1,1.8)



checkme.text="2"

End Sub


Sub bsting_Click

End Sub
Sub Activity_KeyPress (KeyCode As Int) As Boolean
If KeyCode = KeyCodes.KEYCODE_BACK Then
If checkme.text="2" Then
Activity.removeallviews
Activity.LoadLayout("text_scroll")
ScrollView1.Panel.LoadLayout("text_feh")
checkme.text="1"

Return True
End If


End If
End Sub

Sub art(txt As String,leb As Label,font As Typeface,size As Int) As Float
Dim before,after As Float
Dim Obj1 As Reflector
leb.text=txt
leb.TextSize=size
leb.Gravity=Gravity.CENTER
leb.Left=leb.Left
leb.Typeface=font
ht = StrUtil.MeasureMultilineTextHeight(leb , txt)
Obj1.Target = leb
before = Obj1.RunMethod("getLineHeight")
Obj1.Target = leb
Obj1.RunMethod3("setLineSpacing", .10, "java.lang.float", 1.5, "java.lang.float")
Obj1.Target = leb
after = Obj1.RunMethod("getLineHeight")
ht = ((after * ht)/before)
leb.Height = ht
Return ht

End Sub


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

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

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

با سلام

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

لطفا کمک کنید

 

 

اینم از کدش

Sub Globals
'These global variables will be redeclared each time the activity is created.
'These variables can only be accessed from this module.
Dim sql1 As SQL
Private sv As ScrollView
Private label1 As Label
Private img1 As ImageView
Dim strut As StringUtils
Private imglike As ImageView
Dim alaqe As String = "0"
Private sv As ScrollView


End Sub


Sub Activity_Create(FirstTime As Boolean)
'Do not forget to load the layout file created with the visual designer. For example:
Activity.LoadLayout("Lmatlab")
sv.Panel.LoadLayout("LMatn")


sql1.Initialize(File.DirInternal , "data.db" , True)


Dim Cur As Cursor
Cur = sql1.ExecQuery2("SELECT * FROM TblMatlab where FehID = ?" , Array As String(FehID))
Cur.Position = 0


Dim AxName As String = Cur.GetString("Ax")


If (AxName = Null OR AxName = "" ) Then
img1.Visible = False
label1.Top = img1.Top
Else
img1.Bitmap = LoadBitmapSample(File.DirAssets , AxName , img1.Width , img1.Height)
End If


Dim Cur2 As Cursor
Cur2 = sql1.ExecQuery("Select * From TblSetting")
Cur2.Position = 0
'------------------------------
Select Cur2.GetString("FontName")


Case "arial.ttf"
label1.Typeface = Typeface.LoadFromAssets("arial.ttf")
Case "b yekan.ttf"
label1.Typeface = Typeface.LoadFromAssets("b yekan.ttf")
Case "bnazanin.ttf"
label1.Typeface = Typeface.LoadFromAssets("bnazanin.ttf")
Case "broya.ttf"
label1.Typeface = Typeface.LoadFromAssets("broya.ttf")
Case "besfehanbold.ttf"
label1.Typeface = Typeface.LoadFromAssets("besfehanbold.ttf")
Case "bfantezy.ttf"
label1.Typeface = Typeface.LoadFromAssets("bfantezy.ttf")
End Select


label1.TextSize = Cur2.GetString("FontSize")




Select Cur2.GetString("TextColor")


Case "Black"
label1.TextColor = Colors.Black


Case "DarkOrchid"
label1.TextColor = Colors.RGB(153,50,204)


Case "Blue"
label1.TextColor = Colors.Blue


End Select


Select Cur2.GetString("BackColor")


Case "White"
label1.color = Colors.ARGB(Cur2.GetString("BackAlpha"),255,255,255)


Case "Aquamarine"
label1.color = Colors.ARGB(Cur2.GetString("BackAlpha"),127,255,212)


Case "Aqua"
label1.color = Colors.ARGB(Cur2.GetString("BackAlpha"),0,255,255)


End Select




'------------------------------


label1.Text = Cur.GetString("Matn")
label1.Height = strut.MeasureMultilineTextHeight(label1 , label1.Text)


sv.Panel.Height=strut.MeasureMultilineTextHeight(label1,label1.text)


Cur = sql1.ExecQuery2("SELECT * FROM TblFehrest where ID = ?" , Array As String(FehID))
Cur.Position = 0




If (Cur.GetString("Alaqe") = "0") Then
alaqe = "0"
imglike.Bitmap = LoadBitmapSample(File.DirAssets , "fave.png" , imglike.Width , imglike.Height)
Else
alaqe = "1"
imglike.Bitmap = LoadBitmapSample(File.DirAssets , "fave - copy.png" , imglike.Width , imglike.Height)
End If


End Sub


Sub Activity_Resume


End Sub


Sub Activity_Pause (UserClosed As Boolean)


End Sub






Sub btnhome_Click
Activity.finish
StartActivity("main")
End Sub
Sub imglike_Click


If alaqe = 0 Then
sql1.ExecNonQuery2("UPDATE tblfehrest set Alaqe = 1 where ID = ?" , Array As String(FehID))
imglike.Bitmap = LoadBitmapSample(File.DirAssets , "fave - copy.png" , imglike.Width , imglike.Height)
ToastMessageShow("مطلب مورد نظرتون جزو لیست علاقه مندی ها شد" , False)
alaqe = 1
Else


sql1.ExecNonQuery2("UPDATE tblfehrest set Alaqe = 0 where ID = ?" , Array As String(FehID))
imglike.Bitmap = LoadBitmapSample(File.DirAssets , "fave.png" , imglike.Width , imglike.Height)
ToastMessageShow("مطلب مورد نظرتون دیگه جزو لیست علاقه مندی ها نیست" , False)
alaqe = 0
End If
End Sub
Sub btnshare_Click


SHARETEXT(label1.Text , "متن از چه طریقی ارسال بشه؟")


End Sub


Sub SHARETEXT(YOURTEXT As String , YOURTITLE As String)


Dim share As Intent
share.Initialize(share.ACTION_SEND,"")
share.SetType("text/plain")
share.PutExtra("android.intent.extra.TEXT", YOURTEXT)
share.WrapAsIntentChooser(YOURTITLE)
StartActivity(share)


End Sub
Sub Activity_KeyPress (KeyCode As Int) As Boolean 'Return True to consume the event


If (KeyCode = KeyCodes.KEYCODE_BACK) Then


Activity.Finish
StartActivity("main")
Return True


End If


End Sub
Sub btnsetting_Click
Activity.finish
StartActivity(set)


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

ما بیایید اول یک متغیر int تعریف کنید و برابر MeasureMultilineTextHeight قرار بدید.

بعدش Height رو برابر اون متغیر قرار بدید

حدودا اینجوری :

		scrollAval.Panel.AddView(p1,0,ph,100%x,80dip)
		p_h= tanizmlbl.MeasureMultilineTextHeight(lbltxtreject,cur1.GetString("txt")) + 8%y
		lbltxtreject.Height = p_h
		p1.Height=p_h+90dip
		pnlReject.Height=p1.Height
		ph=ph+p_h+90dip+2%y
		scrollAval.Panel.Height=ph

ph و p_h متغیر از نوع int هستند !

p1 و pnlReject اسم panel هست

scrollAval هم اسم ScrollView ما هست

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

ما بیایید اول یک متغیر int تعریف کنید و برابر MeasureMultilineTextHeight قرار بدید.

بعدش Height رو برابر اون متغیر قرار بدید

حدودا اینجوری :

		scrollAval.Panel.AddView(p1,0,ph,100%x,80dip)
		p_h= tanizmlbl.MeasureMultilineTextHeight(lbltxtreject,cur1.GetString("txt")) + 8%y
		lbltxtreject.Height = p_h
		p1.Height=p_h+90dip
		pnlReject.Height=p1.Height
		ph=ph+p_h+90dip+2%y
		scrollAval.Panel.Height=ph

ph و p_h متغیر از نوع int هستند !

p1 و pnlReject اسم panel هست

scrollAval هم اسم ScrollView ما هست

میشه پروژمو براتون ارسال کنم تا ویرایشش کنید؟

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

نتونستم درستش کنم

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

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

در‌ضمن آقای ایزدی که راهنمایی کردند ، شما تلاش خودتون رو بکنید اگر به مشکل برخوردید مطرح کنید.

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

عذر میخوام

باز نتونستم 

 

من خیلی مبتدی هستم 

میشه سورس پروژرو براتون ارسال کنم ویرایشش کنید؟

 

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

در‌ضمن آقای ایزدی که راهنمایی کردند ، شما تلاش خودتون رو بکنید اگر به مشکل برخوردید مطرح کنید.

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

سورس رو قرار بدید تا دوستان بررسی کنن مشکل رو !

در ضمن اگر خودتون میدونید که مبتدی هستید حتما آموزش های بخش مبتدی ها رو پیگیری کنید و پایه خودتون رو قوی کنید.

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

شما ارتفاع scrollview رو فقط اندازه متن گذاشتی ... ارتفاع عکس رو هم بهش اضافه کن :

ScrollView1.Panel.Height=su.MeasureMultilineTextHeight(label1,label1.text)+ImageView1.Height
لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

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

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

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