آموزش برنامه نویسی اندروید (Android)
دسته بندی ( ۴۸۲ آموزش )
نمایش دسته بندی ها (۴۸۲ آموزش)
مباحث اولیه، در برنامه نویسی اندروید
مباحث اولیه، در برنامه نویسی اندروید 28
کار با Activity ها ، در برنامه نویسی اندروید
کار با Activity ها ، در برنامه نویسی اندروید 21
طراحی فایل های xml متناظر با Activity ها و ... (لایه گرافیکی Activity ها و ...)، در برنامه نویسی اندروید
طراحی فایل های xml متناظر با Activity ها و ... (لایه گرافیکی Activity ها و ...)، در برنامه نویسی اندروید 11
کار با برنامه Eclipse (یا همان ADT Bundle)، در برنامه نویسی اندروید
کار با برنامه Eclipse (یا همان ADT Bundle)، در برنامه نویسی اندروید 11
خطاهای رایج در برنامه Eclipse و در برنامه نویسی اندروید
خطاهای رایج در برنامه Eclipse و در برنامه نویسی اندروید 10
کار با برنامه Android Studio ، در برنامه نویسی اندروید
کار با برنامه Android Studio ، در برنامه نویسی اندروید 9
خطاهای رایج در برنامه Android Studio و در برنامه نویسی اندروید
خطاهای رایج در برنامه Android Studio و در برنامه نویسی اندروید 3
تبدیل متغیرها و سایر تبدیل ها، در برنامه نویسی اندروید
تبدیل متغیرها و سایر تبدیل ها، در برنامه نویسی اندروید 9
نمایش عکس و کار با ImageView ، در برنامه نویسی اندروید
نمایش عکس و کار با ImageView ، در برنامه نویسی اندروید 23
نمایش متن و کار با رشته ها (strings) و TextView ، در برنامه نویسی اندروید
نمایش متن و کار با رشته ها (strings) و TextView ، در برنامه نویسی اندروید 38
ساخت دکمه (Button) ، در برنامه نویسی اندروید
ساخت دکمه (Button) ، در برنامه نویسی اندروید 7
ساخت لیست (فهرست) با ListView ، در برنامه نویسی اندروید
ساخت لیست (فهرست) با ListView ، در برنامه نویسی اندروید 12
ساخت EditText، در برنامه نویسی اندروید
ساخت EditText، در برنامه نویسی اندروید 6
مجموعه ویدئوهای آموزش طراحی متریال (Material Design)، در برنامه نویسی اندروید
مجموعه ویدئوهای آموزش طراحی متریال (Material Design)، در برنامه نویسی اندروید 13
طراحی متریال (Material Design)، در برنامه نویسی اندروید
طراحی متریال (Material Design)، در برنامه نویسی اندروید 3
پخش موسیقی، در برنامه نویسی اندروید
پخش موسیقی، در برنامه نویسی اندروید 5
نمایش انیمیشن، در برنامه نویسی اندروید
نمایش انیمیشن، در برنامه نویسی اندروید 3
تغییر ویژگی های کلی برنامه اندروید
تغییر ویژگی های کلی برنامه اندروید 3
ذخیره اطلاعات با SharedPreferences ، در برنامه نویسی اندروید
ذخیره اطلاعات با SharedPreferences ، در برنامه نویسی اندروید 2
پایگاه داده (SQLite Database)، در برنامه نویسی اندروید
پایگاه داده (SQLite Database)، در برنامه نویسی اندروید 10
تبادل اطلاعات بین برنامه اندروید و سرور اینترنتی (اینترنت)، در برنامه نویسی اندروید
تبادل اطلاعات بین برنامه اندروید و سرور اینترنتی (اینترنت)، در برنامه نویسی اندروید 21
نمایش یک صفحه اینترنتی یا کدهای HTML (کار با WebView) و ساخت لینک، در برنامه نویسی اندروید
نمایش یک صفحه اینترنتی یا کدهای HTML (کار با WebView) و ساخت لینک، در برنامه نویسی اندروید 8
حلقه ها (for و while و ...)، در برنامه نویسی اندروید
حلقه ها (for و while و ...)، در برنامه نویسی اندروید 2
نمایش پیام به کاربر (Dialog و AlertDialog و Toast و Notification و ...)، در برنامه نویسی اندروید
نمایش پیام به کاربر (Dialog و AlertDialog و Toast و Notification و ...)، در برنامه نویسی اندروید 11
ویژگی های صفحه نمایش و چرخش آن، در برنامه نویسی اندروید
ویژگی های صفحه نمایش و چرخش آن، در برنامه نویسی اندروید 10
به دست آوردن ویژگی های کلی برنامه اندروید، در برنامه نویسی اندروید
به دست آوردن ویژگی های کلی برنامه اندروید، در برنامه نویسی اندروید 4
به دست آوردن ویژگی های گوشی کاربر، در برنامه نویسی اندروید
به دست آوردن ویژگی های گوشی کاربر، در برنامه نویسی اندروید 5
بازی سازی، در برنامه نویسی اندروید
بازی سازی، در برنامه نویسی اندروید 1
به اشتراک گذاری (share)، در برنامه نویسی اندروید
به اشتراک گذاری (share)، در برنامه نویسی اندروید 5
کار با فایل ها و فولدرها در حافظه خارجی (External Storage)، در برنامه نویسی اندروید
کار با فایل ها و فولدرها در حافظه خارجی (External Storage)، در برنامه نویسی اندروید 15
کار با پوشه های raw و assets ، در برنامه نویسی اندروید
کار با پوشه های raw و assets ، در برنامه نویسی اندروید 2
عملیات های ریاضی، در برنامه نویسی اندروید
عملیات های ریاضی، در برنامه نویسی اندروید 13
کار با دوربین (Camera)، در برنامه نویسی اندروید
کار با دوربین (Camera)، در برنامه نویسی اندروید 3
کار با action bar ، در برنامه نویسی اندروید
کار با action bar ، در برنامه نویسی اندروید 4
کار با کلاس ها (class) ، در برنامه نویسی اندروید
کار با کلاس ها (class) ، در برنامه نویسی اندروید 4
کار با package ها ، در برنامه نویسی اندروید
کار با package ها ، در برنامه نویسی اندروید 2
نرم افزارهای شبیه ساز برای اجرای برنامه های اندروید بر روی سیستم عامل کامپیوتر (مثل ویندوز)
نرم افزارهای شبیه ساز برای اجرای برنامه های اندروید بر روی سیستم عامل کامپیوتر (مثل ویندوز) 2
امنیت، در برنامه نویسی اندروید
امنیت، در برنامه نویسی اندروید 1
Thread ها، در برنامه نویسی اندروید
Thread ها، در برنامه نویسی اندروید 3
سرویس ها (Service)، در برنامه نویسی اندروید
سرویس ها (Service)، در برنامه نویسی اندروید 9
BroadcastReceiver ، در برنامه نویسی اندروید
BroadcastReceiver ، در برنامه نویسی اندروید 0
تاریخ و زمان و تمامی موارد مرتبط با زمان (عملیات های زمان بندی شده و ...)، در برنامه نویسی اندروید
تاریخ و زمان و تمامی موارد مرتبط با زمان (عملیات های زمان بندی شده و ...)، در برنامه نویسی اندروید 11
AsyncTask ، در برنامه نویسی اندروید
AsyncTask ، در برنامه نویسی اندروید 2
آرایه ها (Arrays)، در برنامه نویسی اندروید
آرایه ها (Arrays)، در برنامه نویسی اندروید 3
لیست آرایه ای (ArrayList)، در برنامه نویسی اندروید
لیست آرایه ای (ArrayList)، در برنامه نویسی اندروید 6
رنگ ها (Colors)، در برنامه نویسی اندروید
رنگ ها (Colors)، در برنامه نویسی اندروید 3
Fragment ها و Tab بندی، در برنامه نویسی اندروید
Fragment ها و Tab بندی، در برنامه نویسی اندروید 8
معرفی کتابخانه ها (Libraries)، در برنامه نویسی اندروید
معرفی کتابخانه ها (Libraries)، در برنامه نویسی اندروید 1
ساخت ProgressDialog یا ProgressBar برای نمایش میزان پیشرفت اجرای یک سری عملیات، در برنامه نویسی اندروید
ساخت ProgressDialog یا ProgressBar برای نمایش میزان پیشرفت اجرای یک سری عملیات، در برنامه نویسی اندروید 3
نسخه اندروید (Android version) و API level (نسخه API) ، در برنامه نویسی اندروید
نسخه اندروید (Android version) و API level (نسخه API) ، در برنامه نویسی اندروید 1
لرزاندن گوشی (vibrate)، در برنامه نویسی اندروید
لرزاندن گوشی (vibrate)، در برنامه نویسی اندروید 2
پرداخت درون برنامه ای، در برنامه نویسی اندروید
پرداخت درون برنامه ای، در برنامه نویسی اندروید 1
 پروژه های اندروید Open Source کاربران کلیدستان
پروژه های اندروید Open Source کاربران کلیدستان 2
ساخت امکانات جانبی (جستجو، لیست علاقه مندی، لوگو، منو و ...) برای برنامه اندروید
ساخت امکانات جانبی (جستجو، لیست علاقه مندی، لوگو، منو و ...) برای برنامه اندروید 5
مباحث عمومی، در برنامه نویسی اندروید
مباحث عمومی، در برنامه نویسی اندروید 35

تفاوت بین Drawable و Bitmap در برنامه نویسی اندروید

اگر با عکس ها در برنامه نویسی اندروید کار کرده باشید، مشاهده کردید که اغلب با دو حالت Drawable و Bitmap سر و کار داریم.

باید دقت داشت که Bitmap زیرمجموعه ای از Drawable است (البته از نظر مفهوم، در ادامه شرح خواهیم داد که در برنامه نویسی اندروید، قبل از نمایش یک Bitmap، آن را به BitmapDrawable تبدیل می کنند که زیرمجموعه ای از Drawable است). در واقع، Bitmap یک عکس با فرمت PNG یا JPEG یا ... است، اما Drawable شامل تمام مواردی است که قابل رسم کردن می باشند (یعنی شامل Bitmap نیز می باشد). در اکثر موارد، آنچه که از آن به عنوان Bitmap برای نمایش عکس در برنامه نویسی اندروید نام می بریم، همان BitmapDrawable می باشد.

برای Drawable در برنامه نویسی اندروید، کلاس (class) زیر را داریم :


android.graphics.drawable.Drawable

برای BitmapDrawable در برنامه نویسی اندروید، کلاس (class) زیر را داریم :


android.graphics.drawable.BitmapDrawable

برای بیان تفاوت بین Drawable و Bitmap ، بهتر است در مورد روش های نمایش عکس در یک Imageview صحبت کنیم. برای تعیین عکس برای یک Imageview ، به یکی از 4 روش زیر می توانیم اقدام کنیم : *


1- setImageDrawable(Drawable drawable)
2- setImageBitmap(Bitmap bm)
3- setImageResource(int resId)
4- setImageURI(URI uri)

وقتی از setImageBitmap استفاده می کنیم، ابتدا Bitmap به BitmapDrawable تبدیل می شود و سپس setImageDrawable فراخوانده می شود. این مسئله را از روی کدهای setImageBitmap می توان متوجه شد :


public void setImageBitmap(Bitmap bm) {
    setImageDrawable(new BitmapDrawable(mContext.getResources(), bm));
}

اگر در مورد setImageResource و setImageURI نیز کمی تحقیق کنید، متوجه خواهید شد که آنها برای ساخت یک Bitmap از روی یک مسیر (path) یا Uri و یا فایل منبع (resource file) به کار می روند. بنابراین این دو مورد نیز همانند setImageBitmap می باشند و در کل، می توان نتیجه گرفت که این سه تابع، بر اساس تابع setImageDrawable هستند.

چنانچه بخواهیم انواع دیگری از Drawable (به غیر از Bitmap ، یا در واقع به غیر از BitmapDrawable) را در یک Imageview نمایش بدهیم، باید از خود تابع setImageDrawable استفاده کنیم.

کلمه Bitmap خود از دو کلمه بیت (Bit) و نقشه (Map) تشکیل شده است و همین دو کلمه، ساختار آن را بیان می کند. یعنی مثلا وقتی شما یک عکس 16 در 16 پیکسل دارید، اگر آن را به صورت Bitmap داشته باشید، یعنی آن عکس به صورت تعداد ((16 ضرب در 16 ضرب در n)) مقدار برای پیکس های عکس، ذخیره شده است (برای هر پیکسل ، n مقدار). این مقادیر به صورت آرایه ای از بیت ها (bit array) ذخیره می شوند (هر بیت هم که یعنی مقدار 0 یا 1). مثلا فرمت PNG که برای عکس به کار می رود، یک Bitmap می باشد (n=3).

کلمه Drawable هم از دو کلمه draw و able تشکیل شده است که در مجموع، به معنای ((قابل رسم کردن)) می باشد. قبل از اینکه اصطلاحات ما را گیج کنند، باید بگویم که دو اصطلاح ((Bitmap Drawables)) و ((Vector Drawables)) را داریم که در برنامه نویسی اندروید، ((Bitmap Drawables)) را BitmapDrawables می نامیم و به ((Vector Drawables)) ، به طور خلاصه، Drawables می گوییم (این مورد تذکر داده شد تا اگر بعدا با اصطلاحات دیگری برخورد کردید، این اصطلاحات گیجتان نکند). بگذارید به زبان ساده بگویم، فرض کنید که ما قصد داریم که عکسی شامل یک دایره داشته باشیم، اگر بخواهیم مطابق تعریف Bitmap ها عمل کنیم، باید اطلاعات مربوط به تعداد زیادی پیکسل را داشته باشیم، اما می توانستیم یک جور دیگر نیز اطلاعات مربوط به عکس دایره را ذخیره کنیم و آن این است که مختصات نقطه مرکز دایره و همچنین شعاع دایره را به عنوان اطلاعات ذخیره کنیم، بنابراین با کمی پردازش، می توان عکس را ساخت و نیاز به ذخیره و بازیابی اطلاعات مربوط به تعداد زیادی پیکسل نیز نمی باشد. می توان گفت که Drawable به این صورت عمل می کند و به جای اینکه بر اساس اطلاعات تعداد زیادی پیکسل باشد، با یک سری بردار (vector)، عکس های (images) آماده و متن (text)، عکس نهایی را می سازد. بنابراین مشاهده می کنید که در Drawable ، حتی متن ها را هم می توان به عکس اضافه نمود (کار با چندین لایه از عکس، رسم خط و دایره و ... و به کار بردن متن و اعمال خیلی از انواع تغییرات بر روی عکس).


نویسنده علیرضا گلمکانی
شماره کلید 2251
گزینه ها
به اشتراک گذاری (Share) در شبکه های اجتماعی
نظرات 1 1 0
سعید
۱۳۹۵/۰۵/۲۵
۲۱:۴۵

سلام. برای چاپ متن بر روی عکس چکار باید کرد؟

ارسال نظر جدید (بدون نیاز به عضو بودن در وب سایت)

جستجو در کلیدستان، توسط گوگل

جستجو در عنوان کلیدها

دسترسی سریع

کلید
×

شماره کلید


دسته بندی
×

شماره دسته کلید


جستجو
×

جستجو


کلمات کلیدی

راهنمای کلمات کلیدی (کلاس ها، توابع، عناصر و ...) در برنامه نویسی اندروید، بر اساس حرف اول کلمه کلیدی :

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

developer.android.com