انجمن سایت کلیدستان


رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
ست کردن تصویر دوربین بر روی گرید ویو (در برنامه نویسی اندروید)

ست کردن تصویر دوربین بر روی گرید ویو (در برنامه نویسی اندروید)

#3
سلام.
بنده فرض می کنم که شما کد صحیح برای عکس گرفتن و سپس نمایش عکس گرفته شده در ImageView را دارید (حتما کل این روند را در یک پروژه ساده و تنها با یک ImageView تست کنید تا از درستی کدها خیالمان راحت شود). بنابراین ما روند کار برای یک ImageView را به صورت زیر داریم :

1- شناسایی ImageView 
2- رفتن کاربر به صفحه دوربین برای گرفتن عکسی (بعد از اشاره بر روی ImageView)
3- به محض گرفته شدن عکس، عکس در ImageView نمایش داده می شود (Bitmap را در ImageView نمایش می دهیم، یا اینکه فایل عکس در حافظه خارجی ذخیره شده و بعد آن را در ImageView نمایش می دهیم)

بنابراین کل کد ما، شامل سه مرحله فوق است. اکنون می خواهیم که این روند، قابل اجرا برای تک تک item های GridView (یا ListView --> مشابه می باشند) باشد. برای این منظور، ابتدا باید Adapter مربوط به GridView (یا ListView) را بیابیم. Adapter بخشی از کدها است که ساختار و عملکرد item ها را تعریف می کند (item ها را می سازد).
به عنوان یک مثال، کلید زیر، چگونگی ساخت یک ListView را شرح می دهد :

کلید شماره 843

در آن، Adapter به صورت زیر تعریف شده است :

کد پی‌اچ‌پی:
private class MyAdapter extends ArrayAdapter<String>{

        public 
MyAdapter(Context contextint resourceint textViewResourceId,
                        
String[] strings) {
                
super(contextresourcetextViewResourceIdstrings);
                
// TODO Auto-generated constructor stub
        
}
        
        @
Override
        
public View getView(int positionView convertViewViewGroup parent) {
                
LayoutInflater inflater = (LayoutInflatergetSystemService(Context.LAYOUT_INFLATER_SERVICE);
                
View row inflater.inflate(R.layout.list_itemparentfalse);
                
                
String stringName "string_key_" String.valueOf(position+1); 
                
int string_res_ID getResources().getIdentifier(stringName,"string",getPackageName());
                
String my_string getResources().getString(string_res_ID);
                
TextView tv = (TextViewrow.findViewById(R.id.textView1);
                
tv.setText(my_string);
                
                
String imageName "key_" String.valueOf(position+1); 
                
int image_res_ID getResources().getIdentifier(imageName,"drawable",getPackageName());
                
ImageView iv = (ImageViewrow.findViewById(R.id.imageView1);
                
iv.setImageResource(image_res_ID);

                return 
row;
        }
        
        


در آن، با کد زیر، View مربوط به ردیف را به دست می آوریم (تا با آن بتوانیم عنصرهای تعریف شده در لایه گرافیکی متناظر با هر ردیف را شناسایی کنیم) :

کد پی‌اچ‌پی:
View row inflater.inflate(R.layout.list_itemparentfalse); 

بعد مثلا یک TextView به صورت زیر شناسایی شده و متن دلخواهمان را در آن نمایش داده ایم (می توان برای هر item ، یک متن متفاوت را نمایش داد) :

کد پی‌اچ‌پی:
TextView tv = (TextViewrow.findViewById(R.id.textView1);
tv.setText(my_string); 

بنابراین، شما مشابه این Adapter ، یک Adapter برای  GridView (یا ListView) خود ساخته (یا اگر قبلا داشته، آن را ویرایش کنید) و درون آن، ابتدا ImageView را شناسایی نموده و بعد همان کدهای مربوط به روند مورد نظر را برای آن بنویسید (همان روند سه مرحله ای که بخش آخر آن، نمایش عکس گرفته شده در ImageView است). چون کدها درون Adapter است، پس با اشاره بر روی یک Item ، عنصر ImageView درون آن، عکس را دریافت کرده و نمایش می دهد (سایر item ها تغییر داده نمی شوند).

bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ


پیام‌های این موضوع
RE: ست کردن تصویر دوربین بر روی گرید ویو - توسط admin - ۱۳۹۳/۱۱/۲۰, ۰۹:۲۶ ب.ظ

پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان