menu

منابع گرافیکی اندروید

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


برای ساخت یک اپلیکیشن خوب باید عامل های بسیاری مدنظر قرار گیرد. به غیر از کدنویسی استاندارد و اصولی، طراحی اصولی و زیبا نیز برای یک اپلیکیشن بسیار مهم و ضروری است. منابع گرافیکی شامل لایه ها، تصاویر، رنگ ها، استایل ها، انیمیشن ها، رشته ها و ... می باشد که هرکدام به صورت جداگانه در زیر دایرکتوری تحت دایرکتوری Res قرار گرفته اند.

نحوه قرارگیری منابع گرافیکی در محیط Eclipse

منابع گرافیکی در پوشه res قرار دارند. درون پوشه res زیر پوشه هایی برای جداسازی منابع گرافیکی وجود دارند همانند پوشه drawable برای تصاویر، پوشه layout برای لایه های گرافیکی و پوشه values برای رشته ها. در زیر می توانید نمونه ای از نحوه قرارگیری منابع گرافیکی در محیط Eclipse را مشاهده نمایید.

         MyProject/
           src/  
               MyActivity.java  
           res/
               drawable/  
                    icon.png  
               layout/  
                    activity_main.xml
                    info.xml
               values/  
                    strings.xml 
          

نحوه قرارگیری منابع گرافیکی در محیط اندروید استودیو

         MyProject/
           src/ 
                main/
                java/ 
                    MyActivity.java  
           res/
               drawable/  
                    icon.png  
               layout/  
                    activity_main.xml
                    info.xml
               values/  
                    strings.xml 
          

انواع دایرکتوری های موجود در پوشه Res

پوشه نوع منبع گرافیکی
anim انیمیشن های موجود در برنامه، انیمیشن ها به صورت فایل های XML هستند و در پوشه res/anim/ قرار دارند. از طریق "R.anim" به آن ها دسترسی خواهیم داشت
color فایل های XML که دارای لیستی از رنگ های مورد استفاده در برنامه هستند. این فایل ها درون پوشه res/color/ قرار می گیرند و از طریق "R.color" به آن ها دسترسی پیدا خواهیم کرد.
drawable تصاویر با پسوند های jpg، png, gif و ... و فایل های XML همانند shape ها درون این دایرکتوری قرار می گیرند. از طریق "R.drawable" به این منابع دسترسی خواهیم داشت.
layout لایه های رابط کاربری برنامه با پسوند XML در پوشه res/layout/ قرار می گیرند. از طریق "R.layout" می توانیم به لایه ها دسترسی پیدا کنیم.
menu تمامی منوهای برنامه از جمله منو تنظیمات، زیر منو ها و ... در پوشه res/menu/ قرار می گیرند. از طریق "R.menu" می توانیم به منو ها دسترسی پیدا کنیم.
raw فایل های دلخواه در این پوشه قرار می گیرند. اینگونه فایل ها از طریق "R.raw.filename" قابل دسترس و دستیابی خواهند بود.
values این پوشه شامل تمامی مقادیر موجود در برنامه است که چندین فایل XML از جمله رشته ها، رنگ ها، آرایه ها و ... در آن قرار می گیرند. به عنوان مثال رشته ها درون فایل "strings.xml" هستند و برای دسترسی به رشته ها از "R.string" استفاده می کنیم.

دستیابی و استفاده از منابع گرافیکی در برنامه

اکنون مثال هایی برای دستیابی به منابع گرافیکی در کدنویسی را با هم فرا می گیریم.

دسترسی به تصاویر:

          
   ImageView imageView = (ImageView) findViewById(R.id.myimageview);
   imageView.setImageResource(R.drawable.myimage);
          

دسترسی به رشته ها:

ابتدا در "res/values/strings.xml" یک رشته جدید همانند زیر تعریف می کنیم:

          
   <?xml version="1.0" encoding="utf-8"?>
   <resources>
       <string  name="hello">Hello, World!</string>
   </resources>
          

اکنون می توانیم برای متن یک TextView از آن استفاده نماییم:

          
   TextView msgTextView = (TextView) findViewById(R.id.msg);
   msgTextView.setText(R.string.hello);
          

دسترسی به لایه ها:

ابتدا یک لایه جدید در "res/layout/activity_main.xml" به صورت زیر ایجاد می نماییم:

          
   <?xml version="1.0" encoding="utf-8"?>
   <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="fill_parent" 
            android:layout_height="fill_parent" 
            android:orientation="vertical" >
            
    <TextView android:id="@+id/text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Hello, I am a TextView" />

    <Button android:id="@+id/button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Hello, I am a Button" />
      
   </LinearLayout>
          

سپس در متد "onCreate()" اکتیویتی می توانیم آن را بارگذاری نماییم:

          
   public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main_activity);
   }