استفاده از عکس بین مطالب (دیتابیس)
سلام دوستان
لطفاً اگر کسی ایده، راه حل و روشی برای این کار سراغ داره بگه.
منظور هم که مشخص هستش و نیازی به توضیح بیشتر نداره
(مثلاً چند خط متن داریم، یک عکس، چند خط متن، یک و یا چند عکس و به همین ترتیب)
با تشکر
بهترین راه استفاده از html هست که آقای حسین زاده هم گفتند، ولی اگر میخواید که هم عکس و هم متن رو همزمان از یک رکورد از DB دریافت کنید و نمایش بدید توی این لینک A.L.U یک روش جالب رو پیشنهاد کرده که میتونید از این روش استفاده کنید. قبلا هم سوالاتی با همین مضمون پرسیده شده بودند که لینکشو میذارم تا همه رو همین جا داشته باشیم.
اگه از html نخوای استفاده کنی راه زیر رو پیشنهاد میدم
Table : BookPages
Fields : Id, Title, Order
Table : PageParts
Fields : Id, PageId, Title, Type, Content, Configurations, Order
این ساختار در کل مفهوم هست. ولی نکته تو Type, Content, Configurations هست.
Type : نوع محتوا مثلا پاراگراف فارسی، پاراگراف لاتین، پاراگراف عربی، صدا، فیلم، عکس و... هر چی که به ذهنت برسه
Content : برای انواع متنی خود متن. برای انواع باینری یا آدرسشون یا اگه عکسه و کم حجم مقدار base64
Configuration : تنظیمات مورد نیاز هر نوع در قالب json که در مورد صدا میتونه مثلا میزان ولوم ، تکرار پذیری - برای عکس عرض و ارتفاع مثلا به درصد - برای فیلم هر چی که نیازه و ...
قسمت اول که نمایش لیست صفحاته معمولیه. برای صفحه دوم یه کاستوم کنترل رو یک بار مینویسی و همیشه تو پروژه هات ازش استفاده میکنی. کار این کنترل اینه که لیستی از نوع PageParts رو میگیره ، بر اساس Order مرتب میکنه و تمام کنترل های مورد نیاز رو به روت خودش اضافه میکنه. این کاستوم کنترل میتونه از LinearLayout مشتق بشه.
این ساختار فوق العاده انعطاف پذیر و در دفعات بعدی استفاده فوق العاده ساده هست
من به شخصه روش دیگه ای رو ترجیح میدم
به نظرم میشه متن رو با tag های مختلف مثلا به این شکل ریخت تو دیتابیس:
String str ="<txt>mytexts|<img>imagename.jpg|<txt>text2";
حالا میایم و با دستور split این متن رو تکه تکه میکنیم و میریزیم تو یه آرایه:
String strs[] = str.split("|");
حالا فقط کافیه با یه حلقه foreach کل متن های توی strs رو دور بزنی و 3 حرف اول (شروع از حرف دوم) رو بخونی و با توجه به اینکه نوشته txt یا img، یه textView یا ImageView به صفحه اضافه کنی
تقریبا همچین چیزی:
for (String s: strs) {
String part = s.substring(1, 3);
if (part.equals("txt")) {
} else if (part.equals("img")) {
}
}
پاسخ کاملا مناسب هست ، اما نکته ای که باید در نظر بگیریم اینه که ما میخوایم محتویات رو با صرف کمترین زمان ممکن در برنامه اضافه کنیم ، اضافه کردن | در بین متون خودش زمان بر هست ، (میشه با یه قطعه برنامه ی کوچیک انجامش داد ) - من متن ها رو به این شکل ذخیره می کنم
<h2> Here is my Title </h2>
<p> Some Description Here ! or maybe a new line</p> </br>
<p> Another Text Or maybe a List !</p>
<ul>
<li> item 1 </li>
<li> item 2 </li>
<li> [LoadImage:'bullet.png'] item 3</li>
</ul>
بعد پردازش متن موقع setText کردن fromHtml میکنم.
در آخر:
در آموزش های جدید تدوین شد و به زودی بهترین روش توسط بهترین استاد و به صورت ویدئویی در اختیارتان قرار می گیرد :)
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .