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


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

افزودن ایمیج ویو (ImageView) در زمان اجرا (در برنامه نویسی اندروید)

#1
سلام
من چطوری میتونم به تعداد نامحدود ایمیج ویو در زمان اجرا با فشردن یه دکمه اضافه کنم تو صفحه و بعدش جابه جا کنم و اگر کاربر خواست بتونه ایمیج ویو رو حذف کنه ؟
میشه راهنمایی کنید ؟

فرض کنید یه دایره داریم قراره کاربر داخل دایره رو با یه سری نقطه ( شکل ) پرش کنه .

جای اشیا مشخص نیستن. فقط باید داخل اون دایره پر بشه. همین
پاسخ

افزودن ایمیج ویو (ImageView) در زمان اجرا (در برنامه نویسی اندروید)

#2
سلام.

من با چند خط کد تونستم در زمان اجرا چند تا دکمه ( ایمیج ) اضافه و حذف کنم و مشکلم حل شد.

ولی میخوام بعد از جابه جا کردن اون دکمه ( یا ایمیج) روی صفحه مختصاتش ذخیره بشه و کاربر بتونه مجددا این اطلاعات رو فراخوانی کنه.

و میخوام کاربر مجددا بتونه دکمه ها رو جا به جا کنه و اگر خواست مجددا روی اطلاعات قبلی ذخیره کنه.

میخوام از SharedPreferences  استفاده کنم ( اطلاعات مختصات خیلی زیاد نیست). به نظر شما بعدا به مشکل برنمیخورم؟

فرض کنید 30 تا عکس داریم که کاربر قراره چندین دکمه رو تو نقاط مختلف این تصویر بچینه ....
کافیه هر بار کاربر روی یکی از 30 تا عکس کلیک کنه یه بررسی انجام بشه
1- قبلا سیو شده یا نه اگر سیو شده بود بره به 2
2- مختصات X و Y نقاط رو از آرایه فراخوانی کنه .... و انتقال بده اون دکمه رو در نقطه خاص


====> سوال من
من برای هر عکس یه آرایه منحصر به فرد باید داشته باشم ؟ XI,Y1
برای عکس دوم : آرایه X2 , آرایه Y2
برای عکس سوم : آرایه X3, Y3 ???
, .........

,.........


====================================
سوال آخرم چطوری تک تک دکمه ها X,Y بررسی بشه ؟
پاسخ

افزودن ایمیج ویو (ImageView) در زمان اجرا (در برنامه نویسی اندروید)

#3
سلام.

(۱۳۹۴/۰۸/۲۹, ۰۱:۱۴ ق.ظ)'fvddesigner' نوشته: میخوام از SharedPreferences  استفاده کنم ( اطلاعات مختصات خیلی زیاد نیست). به نظر شما بعدا به مشکل برنمیخورم؟

 

نه، اطلاعات ذخیره شده تسط SharedPreferences تا زمان uninstall برنامه اندروید توسط کاربر، حفظ می شوند. گاهی ممکن است برنامه نویس قصد داشته باشد اطلاعات حساسی را در برنامه اندروید ذخیره کند که نخواهد کسی به آنها دسترسی داشته باشد (یا در واقع، کار هکرها برای دسترسی به آنها را سخت کند)، در این موارد SharedPreferences توصیه نمی شود و ذخیره در پایگاه داده (ِDatabase) با استفاده از روش های encryption توصیه می شود (یا روش های encryption بدون استفاده از پایگاه داده).

(۱۳۹۴/۰۸/۲۹, ۰۱:۱۴ ق.ظ)'fvddesigner' نوشته: من برای هر عکس یه آرایه منحصر به فرد باید داشته باشم ؟ XI,Y1
برای عکس دوم : آرایه X2 , آرایه Y2
برای عکس سوم : آرایه X3, Y3 ???
, .........
 

این روش منطقی نیست، شما باید تنها دو آرایه داشته باشید (حالا یا آرایه (Array) یا لیست آرایه ای (ArrayList)، لغت آرایه را از نظر مفهوم ریاضی آن به کار می برم). یکی با نام X و دیگری با نام Y . بعد با اضافه شدن هر نقطه، یک عنصر به هر کدام از دو آرایه اضافه می کنیم (یا اگر طول آرایه را از اول تعیین کرده ایم، تنها کافی است که شماره متناظر با نقطه را بدانیم و به همان عنصر از آرایه ها اشاره کنیم).
بنابراین مختصات x هر نقطه در آرایه با نام X و مختصات y هر نقطه، در آرایه با نام Y ذخیره خواهد شد. مثلا برای نقطه پنجم، باید عنصر شماره 4 (چون شماره عناصر از 0 شروع می شود) از آرایه های X و Y فراخوانی شود.

(۱۳۹۴/۰۸/۲۹, ۰۱:۱۴ ق.ظ)'fvddesigner' نوشته: سوال آخرم چطوری تک تک دکمه ها X,Y بررسی بشه ؟
 

باید id ها منصربفردی برای آنها تعریف کنیم. مثلا با یک پیشوند متنی ثابت و یک پسوند عددی متغیر :

کد پی‌اچ‌پی:
myImageView_0
myImageView_1
myImageView_2
... 

پس با توجه به اینکه یک عدد متناظر با هر ImageView است، با همان عدد هم می توانیم id آنها را شناسایی کنیم و کل منطق این بخش از برنامه اندروید بر همین اساس خواهد بود.

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

افزودن ایمیج ویو (ImageView) در زمان اجرا (در برنامه نویسی اندروید)

#4
این کدهاست و ولی خطا میده ... با آی دی هم که سرچ می کنم بین ویوها خطا داد. 
کد پی‌اچ‌پی:
 int totalid main.getChildCount();
        SharedPreferences shared getSharedPreferences("Prefs"MODE_PRIVATE);

        String sTag;
        k 0;
 for (
int c 0<= totalidc++) {
            
sTag String.valueOf(view.findViewById(++c).getTag());
            if (
sTag == "btn" String.valueOf(++c)) {
                
x1[k] = view.findViewById(++c).getX();
                
y1[k] = view.findViewById(++c).getY();
                
k++;

                
SharedPreferences.Editor editor shared.edit();
                
editor.putFloat("x" kx1[k]);
                
editor.apply();


            }

        } 
 

 
پاسخ

افزودن ایمیج ویو (ImageView) در زمان اجرا (در برنامه نویسی اندروید)

#5
سلام من مشکل کدمو حل کردم.

منتها میخوام دکمه های ( ایمیج) های داینامیکی رو تو صفحه جا به جا کنم ... من از دو رویداد setOnClickListener , onTouch برای جا به جا کردن شی استفاده کردم.
اون متغییر FLAG وجه تمایز رویداد های کلیک و setOnClickListener , onTouch چون من میخوام با کلیک روی دکمه اون دکمه حذف بشه.
 
کد پی‌اچ‌پی:
btn.setOnTouchListener(new View.OnTouchListener() {
    @
Override
    
public boolean onTouch(View viewMotionEvent motionEvent) {
 
 
                if (
motionEvent.getAction() == MotionEvent.ACTION_MOVE){
                    
flag=false;
                   
                    
view.setVisibility(View.INVISIBLE);
                    return 
true;
                } else {
                    
flag true ;
                    return 
false;
                }
 
 
 
 
    }
});
 
 
 
 
    
btn.setOnDragListener(new View.OnDragListener() {
        @
Override
        
public boolean onDrag(View vDragEvent event) {
 
 
            
float currX,currY;
            
int action event.getAction();
               switch (
event.getAction()) {
                    case 
DragEvent.ACTION_DRAG_STARTED:
                        
// do nothing
                        
break;
                    case 
DragEvent.ACTION_DRAG_ENTERED:
                        
// do nothing
                        
break;
                    case 
DragEvent.ACTION_DRAG_EXITED:
                        
// do nothing
                        
break;
 
 
                    case 
DragEvent.ACTION_DROP:
 
 
                        
v.setVisibility(View.VISIBLE);
                        
v.setX(event.getX());
                        
v.setY(event.getY());
                        break;
 
 
                    default:
                        break;
                }
            return 
true;
        }
 
 
    }); 
 
پاسخ

افزودن ایمیج ویو (ImageView) در زمان اجرا (در برنامه نویسی اندروید)

#6
سلام

نحوه ی بدست آوردن طول آرایه موجود در SharedPreferences به چه شکله ؟

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

کد پی‌اچ‌پی:
int size mSharedPreference1.getInt("Status_size"0); 
پاسخ
 سپاس شده توسط شماره مجازی امارات


پرش به انجمن:


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