آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

تغییر عکس در لیست ویو که به دیتابیس آفلاین متصله

یاسین  10 سال پیش  10 سال پیش
0 0

سلام دوستان سوالم  اینه که من چطور وقتی دیتابیس رو به لیست ویو متصل میکنم. عکسامم رو که تو لیست ویو هست و داخل پروژه ایمپورت شده تغییر بدم. عکس داخل دیتابیس نیست./ این کد قسمت تغییر عکس رو میخوام. چون نمیتونم آدرس عکس رو یک متغیر بذارم. مسیر imagesource رو میگم. اطلاعات متنی رو از دیتابیس بگیره در همین زمان که فور یا وایل داره کار میکنه متغیرم با تغییرش که نام عکس رو هم تغییر میده عکسم عوض شه.

تشکر ..

0 0
میتونی دراوابلت رو از پوشه استس بسازی (10 سال پیش)
0 0
سلام. متاسفانه من متوجه حرف شما نشدم. اگر ممکنه بیشتر توضیح بدید یا تکه کد بذارید. تشکر .. (10 سال پیش)
 برای این سوال 8 پاسخ وجود دارد.
پاسخ به سوال 
SaLaH KuRD  10 سال پیش
+2 0

سلام از تابع زیر استفاده کنید .

اول Context رو توی کلاس G تعریف کنید :

 public class G extends Application {

public static Context context;


@Override
public void onCreate() {
super.onCreate();

context = getApplicationContext();

}

}

عکس رو توی پوشه های drawable بذارید و به جای salah متغیر رو قرار بدید.

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

ImageView img = (ImageView) findViewById(R.id.img);

SetDrawable("salah", img);

}
public static void SetDrawable(String value, ImageView image) {
int resID = G.context.getResources().getIdentifier(value, "drawable", G.context.getPackageName());
image.setImageResource(resID);
}
0 0
سلام. آقا یسوال. همیشه بهم گیر میده . آیا Void خروجی میده !؟ که نوشتین اونجا .. بخاطر همین امولیتور هی گیر میده بهم. که Drawable رو نمیشناسه . یا Drawable کلا گیره/ نمیدونم. یکم راهنمایی میکنین.. (10 سال پیش)
پاسخ به سوال 
یاسین  10 سال پیش
0 0

         for (int i = 0; i < 10; i++) {
StructNote note = new StructNote();
note.title = "Title " + i;
note.description = "Description " + i;
note.done = false;

ImageView imgDelete = (ImageView) findViewById(R.id.imgDelete);

SetDrawable("sample".i.".png", imgDelete);

public static void SetDrawable(String value, ImageView image) {
int resID = G.context.getResources().getIdentifier(value, "drawable", G.context.getPackageName());
image.setImageResource(resID);
}

G.notes.add(note);
}
 این پروژه لیست ویو استاد 

پاسخ به سوال 
maiwand  10 سال پیش
0 0

اگه مشکلتون هنوز حل نشده : 

ظاهرا شما با کلاس های استاد لیست ویوتون رو ساختین منم با توجه به همون بهتون توضی میدم 

اول توی کلاس استراکتت یه دونه دراوابل بساز 

دوم توی کلاس ادپترت ایمیج ویوت رو تعریف کن و با دراوابلت ست بک راند دراوابل کن 

سوم وقتی داری لیست ویو رو مقدار دهی میکنی دراوایبلت رو از پوشه است بساز

 struct note : 
public drawable d



adapter note :
private static class ViewHolder { public ImageView imageview; public ViewHolder(View view) {
imageView = (ImageView) view.findViewbyid(your id ): } public void fill(final ArrayAdapter<NStructNote> adapter, final NStructNote item, final int position) {
imageView.setbackrownddrawable(item.d); } }


main class :

....
Drawable d = Drawable.createFromStream(getAssets().open("yourdrawable.png"), null);
note.d = d;
....

 

پاسخ به سوال 
یاسین  10 سال پیش
0 0

سلام جناب تشکر میکنم. کد رو اجرا کردم و کاملا کار کرد. حالا من موندم چطور مقدار عکس رو تغییر بدم با فور ..

    @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

ListView lstContent = (ListView) findViewById(R.id.lstContent);

adapter = new AdapterNote(G.notes);
lstContent.setAdapter(adapter);
ImageView imglist;
for (int i = 1; i <= 5; i++) {
StructNote note = new StructNote();
note.title = "Title " + i;
note.description = "Description " + i;
note.done = false;
try {
note.ali = note.ali.createFromStream(getAssets().open("shahid" + i + ".png"), null);
}
catch (IOException e) {
e.printStackTrace();
}
Log.i("LOG", "Try : " + i);

G.notes.add(note);
}
adapter.notifyDataSetChanged();
}



                note.ali = note.ali.createFromStream(getAssets().open("sample" + i + ".png"), null);

نمیدونم این چرا کار نمیکنه و همه رو یه عکس اولی نشون میده شاید باید یکری بشه و من نمیدونم


یه راهنمایی کنین. تشکر ...

دوستان با عرض پوزش بابت کامت اولی که زیر پست گذاشتم . من متوجه نبودم عذر میخوام. متغیر کار میکنه ولی تغییر نمیکنه.
tray: i کار میکنه. ولی متاسفانه عکس تغییر نمیکنه .
من مقدار 5 به فور دادم اما دوبار من لیست پنج تایی میبینم. یعنی یبار از یک تا 5 خروجی میده دوبار هباز همین کارو تکرار میکنه.
0 0
متوجه شدم که چرا فقط اون عکس اولی رو نشون میده. چون مقدار اولیه که تو فرم بهش داده بودم همون عکسه بود و اصلا کد تغییر عکس یا کلا بگیکم نسبت دادن عکس با کد کار نمیکنه... (10 سال پیش)
0 0
باید چیکار کنم تا این اجرا شه . String count = String.valueOf(i); String imgname = "shahid" + count + ".png"; note.ali = note.ali.createFromStream(getAssets().open(imgname), null); (10 سال پیش)
پاسخ به سوال 
یاسین  10 سال پیش
0 0

 این قسمت از کد گیر داره..

                 String count = String.valueOf(i);
String imgname = "shahid" + count + ".png";
note.ali = note.ali.createFromStream(getAssets().open(imgname), null);
0 0
آپ (10 سال پیش)
0 0
آپ (10 سال پیش)
0 0
آپ (10 سال پیش)
+1 0
والا من متوجه نشدم کدت خیلی تیکه تیکه و به هم ریختس همین کد بالا رو با کلاسش بزار بی زحمت (10 سال پیش)
پاسخ به سوال 
یاسین  10 سال پیش
0 0

این کد همون مثال استاد در لیست ویو هست

 @Override
publicvoid onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

ListView lstContent =(ListView) findViewById(R.id.lstContent);

adapter =newAdapterNote(G.notes);
lstContent.setAdapter(adapter);
ImageView imglist;
for(int i =1; i <=5; i++){
StructNote note =newStructNote();
note.title ="Title "+ i;
note.description ="Description "+ i;
note.done=false;
try{
note.ali = note.ali.createFromStream(getAssets().open("shahid"+ i +".png"),null);
// این قسمت از کد به خوبی کار نمیکنه

}
catch(IOException e){
e.printStackTrace();
}
Log.i("LOG","Try : "+ i);

G.notes.add(note);
}
adapter.notifyDataSetChanged();
}
 جایی که باید مقدار آی تغییر کنهو در نتیجه نام عکس تغییر پیدا کنه و عکس ها در لیست ویو عوض بشن در هر آیتم لیست. 
+1 0
شما الا باید دقیقا فایل shahid1.png تا 5 رو توی دایرکتوری اصلی استس داشته باشی. اگه حل نشد فردا برات یه پروژه نمونه میزارم (10 سال پیش)
0 0
سلام دقیقا دارم پنج تا عکس کنار عکس shahid1.png ولی متاسفانه نمیدونم چرا کار نمیکنه. (10 سال پیش)
0 0
آپ (10 سال پیش)
0 0
آپ ! (10 سال پیش)
+1 0
لینک (10 سال پیش)
0 0
سلام جناب خیلییییییییی ممنون بابت سورستون. جناب من الانم نمیدونم مشکل کجاست ! که لایه های من تو R.layout شناخته شده نیست و نمیاد و من ارور دارم.. یکی این ارور و ارور دگ هم استایل هایی که قرار دادین شما رو نمیشناسه ! (10 سال پیش)
پاسخ به سوال 
یاسین  10 سال پیش
0 0

اینم شات

+1 0
لایبرری ساپورت ورژن هفت رو اضافه کن پروژه رو کلین کن توی قسمت ایمپورتت r file ایمپورت شده پاکش کن البته شما که کد رو لازم داری از همونا استفاده کن کلا نیازی به اجرای پروژه نداری (10 سال پیش)
+1 0
سلام خیلی ممنون که وقت گذاشتی و جوابامو دادی. اگه اینم بگی ی دنیا ممنون میشم. راستش این مشکل تازه ای برای من نیست.. نمیدونم اصلا چی گیر داره !! من الان یه آی دی بنام lst1 دارم اما وقتی میام اونو تو اکتیویتی تعریف میکنم نمیشناستش. یا همینطور لایه هامو نمیشناسه ! لایه هایی که وجود دارن. (10 سال پیش)
0 0
سلام احتمالا دو متغییر به نام lst1 داری (10 سال پیش)
پاسخ به سوال 
احمد  10 سال پیش
0 0

اگه مشکل لود تصویر داری من کد اماده دارم اینو امتحان کن (فایل را که در sd ذخیره شده باشه لود میکنه)

 img_basket.setImageBitmap(null);
			img_basket.setBackground(null);

			if (item.getpic().equals("no_image")
					| item.getpic().equals("null")
					| item.getpic() == null) {
				final int version = Build.VERSION.SDK_INT;
				if (version >= 16) {
					img_basket.setBackground(G.context.getResources()
							.getDrawable(R.drawable.ic_not_available));
				} else {
					img_basket.setBackgroundDrawable(G.context.getResources()
							.getDrawable(R.drawable.ic_not_available));
				}
			} else {
				Bitmap bmp = BitmapFactory.decodeFile(item.getpic());
				img_basket.setImageBitmap(bmp);
			}

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

به نظر من فایل عکست را به صورت base64 از اینترنت بگیر توی اندروید تبدیل به عکس بکن و توی حافظه ذخیره کن و با این کد لود کن تصویر


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .