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


رتبه موضوع:
  • 1 رای - 5 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل در R.Drawable (در برنامه نویسی اندروید)

مشکل در R.Drawable (در برنامه نویسی اندروید)

#1
سلام

من یک متغیر Global در Activity اول که مربوط به یک عکس در پوشه drawable است

کد پی‌اچ‌پی:
    public static class Global {
        public static 
int newimag R.drawable.asddsa ;
        
    } 

حال من با رفتن یه یک Activity جدید میخواهم که R.drawable  رو عوض کنم و اون imageview در Activity جدید با عکسی که من در Global.newimag قرار دادم باز شود

کد پی‌اچ‌پی:
//    String  a= "R.drawable."+String.valueOf(position); // چون رشته هست قبول نمیشه
                
String  c"num"+String.valueOf(position);//چون از گرید ویو استفاده میکنم نام عکسها به صورت

                
int bgetResources().getIdentifierc"drawable"getPackageName());


                Global.
newimag b;
                Toast.makeText(getApplicationContext(), Toast.LENGTH_SHORT).show();//  خروجی گرفتم دیدم به جای R.drawable.num0
                                                                                       // به این صورت است res/drawable/num0 

و وقتی اکتیویتی جدید باز بشه stop میشود

code activity2

کد پی‌اچ‌پی:
resazedr BitmapFactory.decodeResource(getResources(),
                    Global.
newimag).copy(Bitmap.Config.ARGB_8888true); 
پاسخ

مشکل در R.Drawable (در برنامه نویسی اندروید)

#2
سلام.
توصیه می کنم خطایابی کنید :

کلید شماره 813

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

مشکل در R.Drawable (در برنامه نویسی اندروید)

#3
مدیر عزیز 
من خطایابی میکنم مشکل حل نمیشه

فقط من به دنبال تبدیل   res/drawable/num0 

به    R.drawable.num0  هستم البته باید به صورت int باشه

ممنون میشم  اگه راهنمایی کنید
پاسخ

مشکل در R.Drawable (در برنامه نویسی اندروید)

#4
سلام
هر عکسی یه id داره که از نوع int هست.
شما می تونی با استفاده از کد زیر اون رو بدست بیاری و ازش استفاده کنی

کد پی‌اچ‌پی:
Toast.makeText(getApplicationContext(), R.drawable.num0 Toast.LENGTH_LONG).show(); 

این کد بعد از اجرای برنامه id اون عکس رو میده
پاسخ

مشکل در R.Drawable (در برنامه نویسی اندروید)

#5
سلام دوست عزیز

مشکل من همینه که من id رو به صورت res/drawable/num0 دارم

ولی به صورت R.drawable.num0 (البته به صورت int میخوام) که بتونم برای bitmap استفاده کنم
پاسخ

مشکل در R.Drawable (در برنامه نویسی اندروید)

#6
من کدهاتون رو خوندم، فکر می کنم شما در بحث تعریف متغیرها به صورت Global و با استفاده از Class ، اشتباه عمل می کنید. ما وقتی متغیری را با Class تعریف می کنیم، نمی توانیم آن را تغییر بدهیم. یعنی تنها در صورتی که یکی شیء (object) از آن کلاس (Class) بسازید، آنگاه می توانید مقدار آن متغیر را برای شیء ساخته شده تغییر بدهید، نه برای کلاس اصلی.
مثلا کلید شماره 343 را بخوانید. در آن، کلاس را به صورت زیر تعریف کرده ایم :

کد پی‌اچ‌پی:
public class Globals extends Application {

    public 
String myText "text";



بعد دریافت مقادیر در سایر کلاس ها (از جمله Activity ها) به صورت زیر است :

کد پی‌اچ‌پی:
Globals global = new Globals();
String mt = global.myText

اکنون فرض کنید که در یک Activity دلخواه، کد زیر را می نویسیم :

کد پی‌اچ‌پی:
Globals global = new Globals();
String str = global.myText;
        
global.
myText "another text";
        
Globals global_2 = new Globals();
String str_2 global_2.myText

متغیر str_2 حاوی همان مقدار تعریف شده در کلاس اصلی (یعنی text) می باشد. یعنی کد زیر، تنها برای شیء با نام global ، مقدار متغیر را تغییر می دهد :

کد پی‌اچ‌پی:
global.myText "another text"

با توجه به توضیحاتی که دادم، حدس می زنم با کد زیر که در کدهایتان نوشته اید، فرض کرده اید که مقدار متغیر تغییر داده شده :

کد پی‌اچ‌پی:
Global.newimag b

اما باید توجه داشت که نمی توانیم مقدار تعریف شده در کلاس اصلی را تغییر بدهیم (که بعد انتظار داشته باشیم که با ساخت شیء های جدید در Activity های دیگر، مقادیر جدید در آنها وجود داشته باشد).
البته چون کدهاتون رو چون ناقص دیدم، این محتمل ترین موردی بود که به ذهنم رسید.

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

مشکل در R.Drawable (در برنامه نویسی اندروید)

#7
ممنون از زحمات شما من از گلوبال خیلی استفاده میکنم

برای imageview هیچ مشکلی نداره 

دقت کنید

activity دوم

کد پی‌اچ‌پی:
        Globala.img = (ImageViewfindViewById(R.id.imasdf);
    
        
Globala.img.setImageResource(Global.newimag); 

activity اول

کد پی‌اچ‌پی:
String alibaba "num"+String.valueOf(position);
                
int alipop getResources().getIdentifieralibaba "drawable"getPackageName());
       
                Global.
newimag alipop

به درستی کار میکند 
چرا؟  (چون برای ایمیج ویو میتوان از دو نوع ادرس دهی  [که در کل یکی هستند]  ) چه از res/drawable/num0  یا R.drawable.num0 استفاده شود کار میکند



اما  برای ساخت bitmap فقط R.drawable.num0  قابل قبول است

کد پی‌اچ‌پی:
resazedr BitmapFactory.decodeResource(getResources(),
                    
R.drawable.num0).copy(Bitmap.Config.ARGB_8888true); 

چه کنم؟
پاسخ

مشکل در R.Drawable (در برنامه نویسی اندروید)

#8
سلام
شما این کد رو می زنی چی بهت میده؟
کد پی‌اچ‌پی:
Toast.makeText(getApplicationContext(), R.drawable.num0 Toast.LENGTH_LONG).show(); 
من هر جای برنامه این رو می زنم بهم id عکس num0 که در drowable ریختم رو میده.مثلا 2130968583
بعد من این ای دی رو در برنامه استفاده می کنم
پاسخ
 سپاس شده توسط aanndd

مشکل در R.Drawable (در برنامه نویسی اندروید)

#9
اره میدونم چی میگید شما 

ولی میگم که  
برای ساخت bitmap فقط  R.drawable.num0  قابل قبول است

من هرچی بود رو امتحان کردم

شما خودتون هم میتونید امتحان کنید
کد پی‌اچ‌پی:
resazedr BitmapFactory.decodeResource(getResources(),
                    
R.drawable.num0).copy(Bitmap.Config.ARGB_8888true); 
به جای  R.drawable.num0 هر چی دیگه بذارید قبول نمیکنه
پاسخ
 سپاس شده توسط شماره مجازی امارات


پرش به انجمن:


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