رفتن به مطلب

قرار دادن چندین عکس و چندین متن در میان هم


مجید آرتا

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

به نام آنکه جانم بخشید و جهان

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

و تا الان رفته باشید و رای به کاندیدای مورد نظرتون رو داده باشید :دی

در این روز عید ( روز جمعه ) که در خدمت شما هستیم قصد دارم یک سورس کدی رو با کمی توضیحات در اختیار شما عزیزان قرار بدم و اگر قسمت بشه کتابخونه اینرو بسازیم که خوب اگر هم نشد کتابخونه ساز های محترم زحمتشو بکش :دی

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

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

خب بنده این مورد رو توی جاوا و محیط اکلیپس دیدم و از اونجا Translate  کردم به B4A عزیز

خب مثلا یه روشی که مد نظر بنده بود و یکم کار داشت این بود که به وسیله Regexp یا همون Regex  که در بیسیک هستش انجام بشه.

Regex = Regular Expression

اگه اشتباه ننوشته باشم خلاصه همیچین کلمه ای هستش که می تونیم باهاش الگوهای خاصی رو در رشته تشخیص داد

یک مدل پرکاربرد Regex  ها تشخیص صحیح بودن فرمت وارد کردن ایمیل توسط کاربر

که میاد در نظر میگیرع که قبل از @  تمامی حروف a-z  اعداد 0 تا 9 و کاراکتر ها دیکه و بعد از @ ختما یک . ( Dot )  وجود داشته باشه و یک الگویی رو ارائه میده و باهاش میشه رشته هارو از روی این الگو تحلیل کنیم

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

 

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

خب بزارید قسمت قسمت سورس رو توضیح میدم :

 

 - این سورس 2 تابع داره که یکی برای ایجاد لیبل برای هر متن و یکی برای ایجاد ImageView  برای هر عکس در بین متن ها.

 - یک تشخیص متن ساده و همین.

 

از Globals  شروع می کنیم :DD:  :

Sub Globals

 Private sv As ScrollView
 Dim offsetY As Int = 1%y

End Sub

برای اینکه بتونیم تمامی متون و عکس هارو ببینیم نیاز داریم تا از اسکرول ویو استفاده کنیم :crazy:

یک متغییر offsetY  هم تعریف کردیم این متغییر کارش اینه که میاد top  تمامی المان هارو مشخص می کنه یعنی ویوهارو زیر هم مرتب میچینه میریم جلوتر میبینیم نقش این متغییر رو :areuok:

 

 

خب میریم سراغ دوتا تابع مهم برنامه که خودمون دستی نوشتبم و ار پیش ساخته نیست

 

تابع اول ایجاد لیبل برای هر متن :

Sub setLabel(value As String)
	Private lbl As Label
	lbl.Initialize("")
	lbl.TextColor = Colors.Black
	lbl.TextSize = 18
	lbl.Text = value
	lbl.Gravity = Gravity.RIGHT
	sv.Panel.AddView(lbl,1%x,offsetY,98%x,5%y)
	Dim stu As StringUtils
	lbl.Height = stu.MeasureMultilineTextHeight(lbl,lbl.Text)
	offsetY = stu.MeasureMultilineTextHeight(lbl,lbl.Text) + lbl.Top + 1%y
End Sub

توضیحات »

خب یک لیبل رو میسازیم و یک خونه از حافظه رو بهش نسبت میدیم ( Initialize )  و یکسری کد مثل تعیین رنگ متن و اندازه متن و حالت چینش متن و در ادامه به اسکرول ویو اضافش می کنیم

از کتابخونه StringUtils  استفاده کردیم تا بتونیم اندازه لیبل رو به اندازه متنمون کنیم و متنمون ناقص نباشه خدایی نکرده :DD: .و در نهایت گفتیم بیا موقعیت دقیق لیبل که میشه top  لیبل به علاوه height  اون رو به علاوه یک مارجین یک درصدی تا به عکس پایینی زیادی نچسبه و نزدیک نباشه.

 

 

تابع دوم ایجاد ImageView برای هر عکس :

Sub setImage(value As String)
 If(value.EndsWith(".jpg") OR value.EndsWith(".png")) Then
	Private img As ImageView
	img.Initialize("")
	img.Gravity = Gravity.FILL
	sv.Panel.AddView(img,33%x,offsetY,33%x,33%y)
	Dim b As BitmapDrawable
    b.Initialize(LoadBitmapSample(File.DirAssets,value,img.Width,img.Height))
    img.Bitmap = b.Bitmap
	offsetY = img.Top + img.Height +1%y
 End If
End Sub

توضیحات »

ما اینجا توی این تابع اسم عکس رو از متنمون میگیریم یا کلا بگم اسم عکس ورودی ما هستش فقط،در ادامه ما اسم عکس رو به صورت اتوماتیک و میکیریم و شما کافیه پاتون رو روی گاز بفشارید :DD:

خب شرط اif  چی میگه ؟ میگه که آقا اسم عکسی رو که دادی چک می کنه jpg  هست یا png  و این شرط میخواد ببینه اسمی رو که به تابع دادیم واقعا عکسه یا نه ؟ میتونستیم بدون شرط بنویسیم ولی خب صدرصد دچار کرش میشدیم توی برنامه :crazy:

و در ادامه یک ایمیج ویو میسازیم و حالت قرارگیری عکس و بعد اضافه کردن به اسکرول ویو و بعد موقعیت دقیقش رو در صفخه میگیریم و میریزیم داخل offsetY.

 

 

از اینجا به بعد که قراره به طور عملی ازش استفاده کنیم یکم کد مد داره فقط خودتون رو گیج نکنید الکی و طوری رفتار نکنید که طوری شده :DD:

 

کد مربوط به Activity_Create  و یا هرجایی که دوست دارید،واسه بنده داخل این رویداد هستش و شما دوست دارید می تونید جای دیگه استفاده کنید:

Sub Activity_Create(FirstTime As Boolean)
sv.Initialize(0)
sv.Color = Colors.White
Activity.AddView(sv,0,0,100%x,100%y)
Private text As String = File.ReadString(File.DirAssets,"matn.txt")

Dim part(3) As Int
part = Array As Int(0,0,0)
 For i = 0 To text.Length - 1
  If text.CharAt(i) = "{" Then
  	part(1) = i
	If text.SubString2(part(0),part(1)) <> "" Then
	 setLabel(text.SubString2(part(0),part(1)))
	End If
  End If
  If text.CharAt(i) = "}" Then
   part(2) = i
   setImage(text.SubString2(part(1) + 1,part(2)))
   part(0) = part(2) + 1
  End If
 Next

sv.Panel.Height = offsetY + 3%y
End Sub

قبل از توضیح کد ها باید به عرضتون برسونم که بنده متنی رو به عنوان تست در فایل txt  قرار دادم و متن رو اینجا قرار میدم

Salam In Amozesh Tavasote Anjoman AnswerCenter Hastesh.
khub baraye inke betonid yekam behtar beshe bayad roye in mozo kar konid.{1359453934-parsnaz-ir.jpg}toye in amozesh mikhayim chanta matn va ax ro kenare ham gharar bedim!!!!da hamin miyan shayad nokat ezafi digei ro yad gereftid ke mofid o jaye dige ghabel estefade bashe vasaton{20.jpg} khub berim soraghe ax sevomi ke mikhayim gharar bedim dustan...................................................................................................................{497601.jpg} hala inam matn akhar vA baad in matn axi nist dige va yek matn haminjori mizarim hal konid ta vaghtimmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmllalallalallajjkhgfggdhmnkl,msmndks,mdsbnmd,. {empty}

خب ما اینجا اسم عکسامون رو در بین متنهامون قرار دادم،مثلا ما 4 تیکه متن داریم و 3 تیکه اول هر کدوم یک متن و اینجا بعد هر متن به وسیله { } اومدم اسم عکس مربوط به همون متن رو داخلش نوشتم ( در ضمن بعد از تحلیل متن این { } و اسم عکس حذف میشه و فقط عکس نمایش داده میشه)

شما می تونید به جای { } از علائم دیگه ای مثل < > ,[ ] , & & , % %  و غیره استفاده کنید

حالا در ادامه چطور ما اسم عکسمون رو در میاریم از داخل متن اصلی  »

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

کاراکترهای مورد مقایسه ما } و { هستن که میگیم به محض رسیدن بع این دو کاراکتر بیا متن موجود بین این دو کاراکتر رو دذ بیار که میشه اسم عکسمون و اینکار رو با SubString2  بدست میاریم.این ساب استرینگ 2 به این شکله که دوتا ورودی میگیره یکی نقطه شروع و نقطه پایان جداسازی متن،و ما تنها کاری که اینجا باید بکنیم هر کاراکتر که مبربم جلو و رسیدیم به { و } بیاییم موقعیتشو ذخیره کنیم و اسم عکس رو بدست بیاریم و بدیم به تابع کذایی.

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

شما بجای اون آرایه هم می تونید 3 تا متغییر از نوع  int  جداگونه تعریف کنید و تفاوتی در کار نیست

خداییش خیلی توضیح داره :DD:  دستی نوشتن هم سخته :DD:  سورس رو هم براتون قرار میدم تست کنید و هرجای سورس واستون گنگه بگید توضیح میدم :gerye:

فلج شدم :oops:

 

 

آقا آموزش  از ماس کلا واس ماس :oops::DD: 

 

*** سورس کد جدید اضافه شد***** » توی این سورس از دیتابیس استفاده شده.یک مثال با دیتابیس زدیم تا برای دوستان ملموس تر باشه.

 

 

رمز فایل : answercenter.ir

 

Detect String(AnswerCenter.IR).rar
 

سورس جدید »

Detect String_Updated(AnswerCenter.IR).rar

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

خدا قوت دلاور

واقعا عشق و علاقه میخواد که بشینی اینقدر متن رو تایپ کنی و آموزش بدی  :53:

مرسی استاد آرتا عزیز  :heart:

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

  • 3 هفته بعد...

دانلود خرابه

دوست عزیز ۱۰۶ نفر دریافت کردند می گید دانلود خراب هست؟!

من هم تشکر می کنم از آقای آرتا بخاطر این آموزش مفید

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

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

بنده که متوجه مشکل شما نشدم اما سورس رو در پیکوفایل براتون آپلود کردم :

http://s7.picofile.com/file/8243690484/tmp_30824_Detect_String_AnswerCenter_IR_820636701.rar.html

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

تورو خدا یکی بگه من اگه کتابمو ایطوری درست کنم مارکت بازار قبول میکنه؟

:fekr:  :(

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

 

شما اپتو بساز

روی گرافیک و رابط کاربری کار کن

محتوای مناسب قرار بده

اگه بازار گیر داد بیا منو بزن :DD:

_________________________

 

یه نکته : شما خیلی پیاماتون پشت سر هم هستش و این یعنی اسپم چندجای دیگه هم دیدم سعی کن وقتی یه بار پیام میدید و کسی جواب نمیده

لابد کسی ندیده وگرنه به جواب سوالتون میرسید نیازی به دوباره پرسیدن و شکلک و از این جور پستا نیست :53:

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

  • 3 ماه بعد...

ببخشید اگه ما یه کتاب داشته باشیم که چندیدن مطلب داشته باشه باید چیکار کنیم؟؟

 

یعنی باید برای هر مطلب یه اکتیوری بزنیم؟؟

 

میشه یکم راهنمایی کنید

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

ببخشید اگه ما یه کتاب داشته باشیم که چندیدن مطلب داشته باشه باید چیکار کنیم؟؟

 

یعنی باید برای هر مطلب یه اکتیوری بزنیم؟؟

 

میشه یکم راهنمایی کنید

سلام

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

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

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

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

  • 4 هفته بعد...

به نام آنکه جانم بخشید و جهان

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

 

 

 

سلام آٌای ارتا

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

فقط یه خواهشی داشتم داخل لیبل وقتی ارتفاع ما بین خطوط رو تنظیم میکنم با reflector یا textsetting  یا روش های موجود متن از اسکرول بزرگ تر میشه و رو ست کردن این مورد با ارتفاع اسکرول خیلی ها هم تا اونجا که من تو انجمن دیدم مشکل داشتن 

اگر میشه خواهشا داخل همین آموزش یه شاره ای هم به این موضوع بشه خیلی خوب میشه

بازم ممنون

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

  • 2 ماه بعد...
در ۱ ساعت قبل، s.fa گفته است :

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

هیتلر شکنتون رو خاموش کنین ( اگ دارید ) و در صورت امکان مودمتون رو خاموش و روشن کنید

منم دیروز مشکل دانلود داشتم با این کارا مشکلم حل شد : )

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

  • 3 هفته بعد...
  • 5 ماه بعد...

سلام

اگه متنمون html باشه باید چه تغییراتی در کد بدیم؟

مثلا بچای "}" از تگ img استفاده کرد.

یا برای دیگر تگ ها مثل h3وh2

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

  • 2 ماه بعد...

سلام

آقا آرتا مممنون ب خاطر زحمتایی که میکشین

فقط میتونین همین موضوع رو ب صورت فراخوانی از دیتابیس بگین؟

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

متن 

عکس 

متن

عکس

 

اگه توضیح بدین ممنون میشم اگرم حال و حوصله نداشتین فدا سرت:give_heart:

البته اگه کس دیگه ای هم بلد بود زحمتشو بکشه

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

سلام مهندس ! جواب ندادن دوستان دلیلش این بود اسم شخص رو صدا کردید !

 

واسه سوال جدید پست جدید بزنید !

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

بایگانی شده

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

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

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