سلام ، من تو نت اینطور خوندم که برای قرار دادن عکس در پس زمینه یک اکتیوتی اگر بخوایم عکسی رو به پس زمینه اضافه کنیم باید داخل پوشه drawable عکس رو اضافه کنیم ، بعد به این صورت می تونیم فایل عکس رو در پس زمینه قرار بدیم :
android:background="@drawable/myImage"
اولین مشکلی که باهاش مواجه شدم اینکه :
من تو IntelliJ اصلا پوشه ای به اسم drawble ندارم بلکه اسامی پوشه ها به این صورت هست
[
attachment=264]
دوم اینکه من داخل IntelliJ گزینه ای پیدا نکردم توسط اون عکس رو Add کنم ، مستقیما خودم پوشه
C:UsersbitaIdeaProjectsmyappresdrawable-hdpi رو از منوی Run باز کردم ، عکس رو داخلش کپی کردم
با این حال بازهم این کد با خطا روبرو شد
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable-hdpi/Penguins.jpg"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Hello World, MyActivity"
/>
<SeekBar
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/seekBar" android:layout_gravity="center_horizontal"/>
</LinearLayout>
شما خط 8 کد xmlتون رو به کد زیر تغییر بدین باید درست بشه
android:background="@drawable/Penguins"
1.عکستون رو کپی کنین بعد روی پوشه توی ادیتورتون راست کلیک کنین میتونین همونجا past کنینش دیگه نمی خواد برین از سورس برنامه دستی اضافه کنین
2.شما الان درست عکسو قرار دادین فقط کافیه RelativeLayoutتون رو انتخاب و از قسمت background که کلیک کنین بعدش drawable بزنین عکستون رو نشون میده میتونین انتخاب کنین و به اکتیویتیتون پسزمینه داده میشه
3.بله آموزش درست گفتن پوشه ی drawable عکستون رو بذارین ولی اندروید واسه ی گوشی های مختلف با اندازه صفحه نمایش مختلف عکس با اندازه ی مناسبشو انتخاب میکنه مثلا پوشه ی drawable-xxhdpi پوشه ی عکس برای گوشی های با صفحه نمایش بزرگ مثل تبلتو این چیزاس و تا میرسه به drawable-ldpi که دیگه کوچکترین صفحه نمایش هستش. شما همیشه همون drawable-hdpi رو در نظر بگیرین و عکساتون رو توی اون قرار بدین چون بیشتر صفحه نمایشا تو این اندازن و خود اندرویید موقعه ی نصب به صورت اتوماتیک تشخیس میده صفحه نمایش گوشی کاربر چقده و تصویر مناسب اون رو براش توی یکی از اون پوشه ها میسازه ولی کار بهتر اینه که شما توی این پوشه ها ic_launcher.png رو که ایکون برنامس باز کنین ببینین از لحاظ ابعاد با پوشه ی دیگه چه نسبتی دارن بعد هر عکسی قرار میدین تو برنامتون (برای افزایش کیفیت) به همون نسبت اندازه تصاویرتون رو تغییر و داخل اون پوشه ها قرار بدین چون تبدیل اتوماتیک خود اندروید یکم باعث بهم ریختن پیکسلای عکس اصلیتون میشه ولی یه بدی که داره اینه که خب حجم برنامتون خیلی میره بالا!
ممنون ، اما چند نکته رو متوجه نشدم
اول :
RelativeLayout کدوم قسمته ، چطوری باید انتخابش کنم
دوم : ببنید درست متوجه شدم ؟ اگر عکس را با ابعاد و سایزی برای ابعاد و سایز ic_launcher.png داخل پوشه drawable-hdpi قرار بدم
، مشکل پیکسلا بهم نمی ریزه ، اما حجم برنامه ام به شدت افزایش پیدا می کنه ؟!
(25-06-1394، 01:03 ق.ظ)بیتا_حکمت نوشته: [ -> ]ممنون ، اما چند نکته رو متوجه نشدم
اول :
RelativeLayout کدوم قسمته ، چطوری باید انتخابش کنم
ببخشید اینجا من فکر کردم layout شما از نوع relative که در اینجا لایتون LinearLayout هستش. شما طبق عکس زیر میتونین این قسمتو انتخاب و خاصیت backgroundشو تغییر بدید
این توی ادیتور eclipse هستش ولی توی IDE شمام مکانش فرقی نداره به همین شکله
(25-06-1394، 01:03 ق.ظ)بیتا_حکمت نوشته: [ -> ]دوم : ببنید درست متوجه شدم ؟ اگر عکس را با ابعاد و سایزی برای ابعاد و سایز ic_launcher.png داخل پوشه drawable-hdpi قرار بدم
، مشکل پیکسلا بهم نمی ریزه ، اما حجم برنامه ام به شدت افزایش پیدا می کنه ؟!
شما مثلا آیکون ic_launcher.png رو از پوشه ی drawable-hdpi که باز کنین مثلا فرض میگیریم اندازه ی این تصویر 50x50 پیکسل هستش (که در اصل یه عدد دیگس که اینجا واسه مثال میگم وگرنه فکر کنم 72 در 72 باشه) بعد برین توی drawable-xxhdpi همین تصویر رو نگاه کنین مثلا اندازش 100x100 پیکسل هستش پس نتیجه میگیریم اگه یه تصویری مثلا 350x350 پیکسلی رو گذاشتیم تو پوشه ی drawable-hdpi پس باید اندازه ی دوبرابر همین عکسو (700x700 پیکسل) بذاریم توی پوشه ی drawable-xxhdpi و به همین ترتیب شما نسبت اندازه ی ic_lancher توی هر فولدرو نسبت به فولدر دیگه بدست بیارین بعد دستی با نرم افزارای دیگه اندازه تصویرتون رو مناسب اون قسمت تغییر بدین و قرارش بدین. این کار چون از هر عکس باید 5تا (اگه اشتباه نکنم تو تعداد پوشه ها) قرار بدین پس حجم برنامتونم چندین برابر میشه!
ولی روش ساده ترش همون بذارین تصویرتون رو توی drawable-hdpi بعد خود برنامه موقع اجرا تصویرو متناسب صفحه نمایش واسه پوشه های دیگه میسازه که یکم کیفیت عکس میاد پایین که همچینم به چشم نمیاد ولی حالا بخواین برنامه ی تمیزی باشه اون روش دیگرو توصیه میکنم
همونطور که دوستمون اشاره کردن، اگه توی هرکدوم از پوشه ها تصویرتون رو بگذارین، اندروید خودش برای رزولوشنهای دیگه اون رو تغییر سایز میده ولی کیفیتش یکم پایین میاد. ضمناً درمورد اینکه گفتین پوشه drawable ندارین هم مشکلی نیست. اگه خواستین خود اندروید تغییر سایز بده، میتونید پوشه هایی که با drawable شروع میشن رو حذف کنید و یک پوشه دستی به اسم drawable داخل res بسازین و عکسها رو اونجا بگذارین. اندروید خودش شناسایی میکنه. هرچند توصیه میکنم یکم زحمت بکشین و خودتون عکسها رو با سایزهای مختلف تولید و در پوشه مناسب قرار بدین. اینطوری میشه از نرم افزارهای فشرده سازی مثل Advanced JPEG Compressor و... برای کاهش حجم تصاویر هم استفاده کنید.
روی پوشه res کلیک راست کنید، گزینه New و سپس Android Resource Directory، سپس در Select Box به نام Resource Type، گزینه drawable رو انتخاب کنید و خودش ساخته می شه ...