بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

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

مدیریت گفتگو
مجتبی یگانه 12 سال پیش
آخرین تغییر: 11 سال پیش

اگر قرار باشه متن داخل دایتابیس ، فایل متنی یا هرجایی بره و کاربر قابلیت اضافه داشته باشه ، چه روشی واسه گذاشتن عکس لا به لای متن ، وجود داره ؟ (  ایده میخوام نه سورس  )

من خودم :مثلا

 "this is a image [image1]"

و ایجاد یک تابع برای خوندن و ایجاد کادر تصویر در زمان اجرا !

شما ؟

نظرات

Criss 11 سال پیش
من از تا بحال کتاب ننوشتم < اما روزی که تصمیم بگیرم از Scroll View استفاده میکنم < برای تراز بندی دقیق هم تا جایی که بشه باید از لایر استفاده کرد

پاسخ‌ها 4

MrBob 12 سال پیش

نظرت چیه از html استفاده بشه ؟؟؟ به نظرم که خیلی خوبه واسه متن و تصویر با هم ،،،

نظرات

MrBob 12 سال پیش
خوب میشه کدhtmlرو داینامیک نوشت این که کاری نداره،اما واسه عکس باید یه راهی باشه من الآن نمیدونم ولی خوب اگه بسرچی تو نت حتما جوابش پیدا میکنی ،،،
MrBob 12 سال پیش
ایول همینه !!!
uncocoder 12 سال پیش
تو TextView هم میشه عکس نشون داد. باورت نمیشه؟! سرچ کن.
uncocoder 12 سال پیش
ایده من اینه که یک زبون اسکریپ برای خودت داشته باشی و با regex متنت رو پروسس کنی. مثلاً وقتی می نویسی this is an image [img src="test"] یک جور اسکریپت نوشتی و بعداً می تونی Replace کنی با هر چیزی که دلت بخواد از جمله html مثل کاری که خودت تو سئوال کردی.
h_uk2009 12 سال پیش

دوراه داری

1- همون روش html که ساده تره و .... اد تره !  امکاناتی مثل بلوتوث متن و تغییر فونت و سایز و و و در آوردن توش سخت تره واست

2- روش نوشتن برنامه داینامیک که از دیتابیس بخونی و به ازای هر به فرض متنی یک عکسی رو داینامیک اضافه کنی .. به نظرم بخش Custom Spinner رو با دقت ببین خیلی نکاتی هست طلایی و کلیدی که میتونی ازش استفاده کنی .. واقعا استاد آقاجانی بینظیره مطمعن باش با دقت ندیدی چند بار ببین و فک کن برنامتو چجور داینامیگ بنویسی

نظرات

h_uk2009 12 سال پیش
سلام عزیزم آره من سوالو درست نخونده بودم alu0075 عزیز ... من با شما کاری دارم باید حتما بات در تماس باشم .. لطفا بهم ایمیلتو بده مرصی .
مجتبی یگانه 12 سال پیش

درسته 4 مــــــــــــــــــــــــاه گذشته ! ، اما خوب خواستم بگم بالاخره فرصت کدنویسی پیش اومد !

  1. استفاده از html به دلیل اینکه از فونت پشتیبانی مشخصی نمیکنه ،  توصیه نمیشه !
  2. درج تصویر در TextView عملیه و برای درج تصاویر کوچک مناسب تره مثلا جایگزین کردن :) با تصویر لبخند !
  3. درج تصویر در یک ImageView جداگانه !

3  - در این روش من اومد ورودی رو به این شکل گرفتم :

This is An Image File [LoadImage:'image1.png']  this is Another Image [LoadImage:'image2.png']

و یک Regular experition  هم برای تشخیص تصاویر به این شکل

Pattern pattern = Pattern.compile("\\[LoadImage:(.*?)\\]");

خوب حالا به ازای هر تصویر پیدا شده ، یک لایه inflate کردم و تصویر رو فراخوانی کردم ! ، هرجایی که باید متن رو هم نمایش میدادم ، یک نمونه از لایه ی مربوط به متن inflate می کنم

مزایایی که داره :

  1. می تونیم از یک لایه نمونه بسازیم ، پس همه ی تصاویر و متن ها مثل هم دیگه میشن !
  2. میتونیم برای هر متن و تصویر لیسنر بنویسیم !
  3. فونت را کاملا پشتیبانی میکنه :)
  4. می تونیم هر قسمت از متن رو با HTML یک استایل خاص بدیدم و HTML.FromHTML بارگذاری کنیم :)
  5. و...  !

موفق باشید

نظرات

irwonders 12 سال پیش
لینک ممنون میشم تو این تاپیک، روش رو بیشتر توضیح بدی :)
مجتبی یگانه 12 سال پیش

من این روش رو پیاده کردم و دقیقا 58 خط شد ، پس خیلی کار سختی نیست و من سورس کد رو نمیزارم تا خودتون بیشتر تلاش کنید :|

 این هم آرگمان هایی که به عنوان ورودی میگیرم 

private void processText(String text, LinearLayout layoutRoot,int imageLayout, int textLayout) {

// proccess input Text Here !
}

Text : کل متن خوانده شده از پایگاه داده

layoutRoot : یک Linear Layout خالی ، که بعد از پردازش ، تکست ویو و ایمیج ویو (ها) به این لایه addView می شوند. (برای خروجی بهتر ، این لایه را در یک اسکرول ویو قرار میدیم که محتوا اسکرول هم بخوره)

int imageLayout : شماره ی Resource لایه ای هست که قرار هست ازش به عنوان الگوی ساخت تصویر استفاده کنیم.
int textLayout :  شماره ی Resource لایه ای هست که قرار هست ازش به عنوان الگوی ساخت متن ها استفاده کنیم.

این هم نحوه ی فراخوانی :

ProccessText( Text, layoutRoot, R.layout.image_style, R.layout.text_style);

نظرات

حمیدرضا 12 سال پیش
ممنونم ازت.خداخیرت بده.روش خوبی بود
طاهر 11 سال پیش
مهندس دستت طلا پیاده سازیش کردم حالا یه مشکلی اینجا هست اگه بخواهیم مثلا سایز متن ها رو بصورت آنی با کلیک بر روی یک آیکن تغییر بدیم چه باید بکنیم ؟
طاهر 11 سال پیش
خودم پیداش کردم کافیه لیست ویوها رو بگیریم و فونت تک تکشون رو تغییر بدیم.

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .