آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
مشکل عدم دسترسی خریداران پیشین به برخی آموزش ها برطرف شد
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

0 تا 100 ساختن یک کتاب بهمراه عکس بین متون - درخواست از استاد

Aref  10 سال پیش  9 سال پیش
+21 0

سلام

من از روزی که شروع کردم به کدنویسی اندروید تا 2 هفته عالی بود همه چی ولی یهو به دیتابیس خوردم و نیاز به یادگیری اون داشتم که هر چی سرچ کردم و لینک دیدم واسه یکی که بخواد از صفر شروع کنه مفید نبود و تقریباً 45 روز بدون هیچ پیشرفتی به بیهوده ترین شکل ممکن وقتم رو هدر دادم 

از آقای آقاجانی درخواست داشتم که اگه ممکنه یه پروژه 0-100 ساخت یک کتاب به همراه عکس بین متون و لیست علاقمندی و ... بنویسن چون خیلی از برنامه ها و مشکلات رو برطرف میکنه و یکی مثل من شاید چندین ایده داشته باشه و واسه بلد نبودن این مباحث درجا بزنه

تو فیلمها آموزش هست ولی پروژه ای که صرفاً همین هدف رو دنبال کنه نیست و کمی گیج میشم که مشکل از منه :(

اگه استاد وقت ندارن هم اکثر بچه ها الان ساختن چنین برنامه هایی رو کاملاً بلدن و اگه لطف کنن و بتونن فیلم کاملی بسازن خیلی خوب میشه ، هزینه ای هم باشه مشکلی نداره ، منظورم یک کتاب 1000 پستی نیست فقط 5-6 تا پست با تصاویر اول و وسط پست باشه که روال کار رو به درستی یاد بگیریم 

 

ممنون

+1 0
سلام.دوست خوبمون اقای ادیبی قبلا همچین کار ارزشمندی رو قبلا انجام دادن : لینک (10 سال پیش)
+2 0
به ویدئوی 24-3 عنایت کنید. 80% مطالب مورد نیاز برای کتاب آنجا هست. می ماند لیست علاقه مندی ها که به راحتی می توانید آن را با در نظر کرفتن یک فیلد boolean در دیتابیس فهرست کتاب درستش کنید. (10 سال پیش)
+2 0
خب مشکل اصلی من قرار دادن عکس بین متون هست ، واسه این باید چیکار کنم ؟ البته این فیلمی که ساخته بودن خیلی ساده بود ولی خب تو سایت نیک اندروید آموزش کاملی گذاشته بودن که بهتر از این بود ولی اونجا هم در مورد عکس چیزی نگفته بودن (10 سال پیش)
+1 0
قرار دادن تصویر بین متون در نگاه اول شاید ساده باشه اما اینطور هم نیست در زیر من روش ش رو میگم کمااینکه سایر دوستان مثل ALU هم قبلا آموزشش رو داده بودند. (10 سال پیش)
0 0
از این تاپیک مجتبی عزیز خیلی استفاده کردم، پیشنهاد میکنم: لینک (9 سال پیش)
 برای این سوال 6 پاسخ وجود دارد.
پاسخ به سوال 
javac  10 سال پیش
+16 0

برای قرار دادن تصویر در بین متون سه تا متد تعریف کردم:

addTextView // افزودن متن 
addImageView // افزودن تصویر 
doProcess// پردازش متن

متد اصلی ما doProcess هست که داخلش یک عبارت منظم ( regExp) می نویسیم و توی متن ما هرگاه به یک "الگو" یا "تگ" رسید اون تگ رو حذف کنه و به جاش یک تصویر بچسبونه.

الان تگی که من استفاده کردم اینه:

 \\[image:'(.*?)'\\]

معنیش اینه که اگر متنی مشابه متن زیر دیدی تگ یا علامتی که گذاشتیم رو بردار و بجاش تصویر مرتبط رو بزار :

لورم ایپسوم متن ساختگی با تولید
سادگی نامفهوم از صنعت چاپ و با استفاده از
\\[image:'001.jpg'\\]
و کاربردهای متنوع با هدف بهبود ابزارهای
کاربردی می باشد. کتابهای زیادی در شصت و سه
درصد گذشته، حال و آینده شناخت فراوان جامعه و متخصصان را می طلبد
\\[image:'002.jpg'\\]
تا با نرم افزارها شناخت بیستری را برای طراحان
رایانه ای و فرهنگ پیشرو
در زبان پیوسته اهل دنیای موجود طراحی اساسا مورد استفاده قرار گیرد.
\\[image:'003.jpg'\\]




 
    public void doProcess() {
        String content = getTextFromAssets("content.txt");

        Pattern pattern = Pattern.compile("\\[image:'(.*?)'\\]");
        Matcher matcher = pattern.matcher(content);
        int lastIndex = 0;
        while (matcher.find()) {
            String newContent = content.substring(lastIndex, matcher.start(1)).replace("[image:'", "").replace("']", "");
addTextView(newContent); String imageName = content.substring(matcher.start(1), matcher.end(1)); addImageView(imageName); lastIndex = matcher.end(1); } String newContent = content.substring(lastIndex, content.length()).replace("[image:'", "").replace("']", "");
addTextView(newContent); }
 
    private void addImageView(String imageName) {
        ImageView imageView = new ImageView(this);
        Bitmap bitmap = getImageFromAssets("pictures/" + imageName);
        imageView.setImageBitmap(bitmap);
        layoutRoot.addView(imageView);
    }
  private void addTextView(String text) {
        TextView textView = new TextView(this);
        textView.setText(text);
        textView.setTextSize(20);
        textView.setTextColor(Color.BLACK);
        layoutRoot.addView(textView);
    }

ویرایش - برای خوندن متن مورد نظرتون از assets از این متد استفاده کنید:

   private String getTextFromAssets(String fileName) {
        AssetManager assetManager = activity.getAssets();
        InputStream stream = null;
        try {
            stream = assetManager.open(fileName);
            StringBuilder builder = new StringBuilder();
            BufferedReader reader = new BufferedReader(new InputStreamReader(stream));
            String line;
            while ((line = reader.readLine()) != null) {
                builder.append(line);
            }
            return builder.toString();
        }
        catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                stream.close();
            }
            catch (IOException e) {
                e.printStackTrace();
            }
        }
        return "";
    }

private Bitmap getImageFromAssets(String imageName) { InputStream stream = null; try { AssetManager assetManager = activity.getAssets(); stream = assetManager.open(imageName); BitmapFactory.Options bmOptions = new BitmapFactory.Options(); bmOptions.inSampleSize = 4; Bitmap bitmap = BitmapFactory.decodeStream(stream, null, bmOptions); return bitmap; } catch (IOException e) { e.printStackTrace(); } finally { try { stream.close(); } catch (IOException e) { e.printStackTrace(); } } return null; }
0 0
ممنون مرسی (9 سال پیش)
0 0
من به این روش به کمک دوستمون javac عزیز به برنامه نوشتم که عکس بین مطالب لازم بود.حالا میخوام فونت تکست مورد نظ رو بزرگ کنم کسی هست راهنمایی کنه؟ (9 سال پیش)
+1 0
مقدار setTextSize رو باید تغییر بدی میتونی با تعریف یک متغیر و مقدار دهیش اینکار رو کنی (9 سال پیش)
0 0
از دیتا بیس چطور بخونیم متن یه توضیح در مورد متد بالا هم میدی خیلی نامفهومه ممنون (9 سال پیش)
0 0
(9 سال پیش)
0 0
اقایون تورو خدا یه توضیح بدین بدجوری لازم دارم (9 سال پیش)
0 0
!!! (9 سال پیش)
0 0
؟؟؟ (9 سال پیش)
0 0
باید برید درباره کاربا دیتابیس بخونید ، حالا که یادگرفتید ، متن رو از دیتابیس واکشی میکنید و میدین به سورس بالا و خروجی میگیرید (9 سال پیش)
0 0
کار با دیتا بیسو کاملا میدونم (لوکال و انلاین) کد بالا رو نمیدونم چه کار میکنه کد کلیشست باید حفظ بشه؟ (9 سال پیش)
0 0
بدم به سورس بالا یعنی باcontent جایگزین کنم (9 سال پیش)
0 0
آره ، در قالب یه کلاس از این سورس کد استفاده کنید و با ساخت یک نمونه ازش خروجی مناسب رو بگیرید (9 سال پیش)
0 0
(9 سال پیش)
0 0
کسی نمیدونه؟؟؟ کلا دارم از سایت نا مید میشم (9 سال پیش)
0 0
اندازه تکس رو تو on resumeهنگام برگشت از صفحه تنظیمات چطور عوض کنیم (9 سال پیش)
0 0
با استفاده از sharedPreferences (9 سال پیش)
0 0
با استفاده از sharedPreferences (9 سال پیش)
0 0
درست کردم باsharedPreferences ولی نتونستم توonresumeاستفاده کنم به همین خاطر هنگام رفتن به صفحه تنظیمات اکتیویتی رو بستم وهنگام برگشتن از تنظیمات اکتیویتی رو باز کردم صفحه قبلی اکتیویتی که بسته شده رو باadd flagنگه داشتم تو استک به نظر شما این پروسسه زیادی نمیگیره تا اینکه تو on resume بتونم اندازه متنم رو تغییر بدم (9 سال پیش)
0 0
کسی نمیدونه تو متد on resume چطور میشه بوسیله باsharedPreferences اندازه متن رو تغییر داد من مقدار اندازه متن و فونت متن رو تو on resume میگیرم ولی نمیتونه تو onresume تکست ویویی که تو کد بالا ساخته میشه رو اندازشو عوض کنم کسی میدونه ؟ (9 سال پیش)
پاسخ به سوال 
Smkm79  9 سال پیش
0 0

من سورس رو کپی کردم و ایمپورت هارو انجام دادم ، به این خط ایراد میگیره (( String content = getTextFromAssets("content.txt"); ))

اگه بگیم getFromAssets.open("folan.txt");q ارور میده ومیگه باید به InputStream تبدیل بشه . به InputStram تبدیل میکنی به subtitle و ... خطا میده و خلاصه .... نمیتونم از استس بخونمش به استرینگ هم بلدنیستم تبدیل کنم ؟ چکارکنم الان؟؟

0 0
باید فایل رو از assets بخونید و به string تبدیلش کنید - کلاس مربوطه به تاپیک اضافه شد. (9 سال پیش)
0 0
اصلاح میکنم - متد مربوطه اضافه گردید :)) (9 سال پیش)
0 0
متد getImageFromAssets رو هم بزار دیگه ؛ کار را که کرد؟؟ آنکه تمام کرد!! (9 سال پیش)
0 0
؟چطوری با این روش میشه اشتراک گذاری کرد عکس متن رو (9 سال پیش)
پاسخ به سوال 
jamal2012  9 سال پیش
0 0

من این خطو متوجه نمیشم

 String newContent = content.substring(lastIndex, matcher.start(1)).replace("[image:'","").replace("']","");
0 0
این یعنی چی؟ replace("[image:'","").replace("']",""); (9 سال پیش)
0 0
یعنی tag مورد نظر که خودمون تعریف کردیم واسش رو پاک کن. (9 سال پیش)
0 0
یعنی tag مورد نظر که خودمون تعریف کردیم واسش رو پاک کن. (9 سال پیش)
0 0
متد getImageFromAssets رو هم بزار دیگه (9 سال پیش)
0 0
متد getImageFromAssets رو هم بزار دیگه!! (9 سال پیش)
0 0
هیچ کی نیست کمک کنه مخم دیگه داره رد میده (9 سال پیش)
0 0
کسی نمیدونه؟؟؟ کلا دارم از سایت نا مید میشم (9 سال پیش)
+1 0
متد فراخوانی تصویر از assets به سورس کدبالا اضافه شد. (9 سال پیش)
پاسخ به سوال 
jamal2012  9 سال پیش
0 0

سلام من این کارا رو انجام دادم فقط به جا تصویر از فولدر استس میاد اسم تصویر رو جایگزین میکنه چرا؟

 
 
 
0 0
چند روزه وقتمو گرفته (9 سال پیش)
0 0
من اصلا منوجه نمیشم چی جایگزین چی میشه یکی توضیح بده تو روخدا (9 سال پیش)
0 0
من تو متن اصلی چی رو باید به عنوان پترن بیارم تو استس چی رو باید سیو کنم اسم ایمیج با پسوند یا فقط اسم ایمیجو (9 سال پیش)
0 0
هیچ کی نیست کمک کنه مخم دیگه داره رد میده (9 سال پیش)
0 0
کسی نمیدونه؟؟؟ کلا دارم از سایت نا مید میشم (9 سال پیش)
پاسخ به سوال 
jamal2012  9 سال پیش
0 0

اینم کد درسته؟

getImageFromAssets
 
 private Bitmap getImageFromAssets(String strName)
{
AssetManager assetManager = getAssets();
InputStream istr = null;
try {
istr = assetManager.open(strName);
}
catch (IOException e) {
e.printStackTrace();
}
Bitmap bitmap = BitmapFactory.decodeStream(istr);
return bitmap;
}
0 0
تایه حدودی جواب گرفتم ولی جای عکس خالیه (9 سال پیش)
0 0
لطفا واسه ما هم یاد بدین ممنون (9 سال پیش)
0 0
ok (9 سال پیش)
پاسخ به سوال 
amo_milad  9 سال پیش
0 0

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

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


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