PDA

View Full Version : تغییر عکس imageview



big lost
دوشنبه 19 خرداد 1393, 15:13 عصر
میخواستم وقتی توی برنامم روی عکس کلیک میکنم عکسش عوض بشه

مثلا یه عکسی با نام worda.jpg دارم ، میخوام وقتی روی عکس کلیک کنم عکس رو با wordb.jpg عوض کنه

لطفا راهنمایی کنین

با تشکر

hosseinaryai
دوشنبه 19 خرداد 1393, 17:43 عصر
توی رویداد setOnClickListener عکست اینو می نویسی :

imagebox_name.setImageResource(r.worda.jpg)
اگرم عکستو از توی sdcard می خوای بخونی میشه این :


Bitmap bmp = BitmapFactory.
decodeFile(Environment.
getExternalStorageDirectory()+
+ "/" +
worda.jpg)

imagebox_name.setImageBitmap(bmp);

big lost
چهارشنبه 21 خرداد 1393, 19:54 عصر
این کد رو تونستم بدست بیارم
این کد به این صورت کار میکنه : که وقتی روی button کلیک میشه یه عکس به صورت Random از بین 5 عکس داده شده در برنامه نمایش داده میشود .
میخوام به جای این که random عکس رو انتخاب کنه ، به ترتیب عکس ها رو انتخاب کنه
یعنی اول عکس شماره 1 بعد عکس شماره 2 و .....
چه کدی باید به جای random بنویسم ؟

اینم کد :

package com.example.image;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;


public class MainActivity extends Activity
{


final int[] images = {
R.drawable.easy1, R.drawable.easy2,
R.drawable.easy3, R.drawable.easy4,
R.drawable.ic_launcher };



@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button shuffle = (Button) findViewById(R.id.button1);
shuffle.setOnClickListener(new View.OnClickListener()
{
public void onClick(View view)
{




Random rng = new Random();
List<Integer> generated = new ArrayList<Integer>();
for (int i = 0; i < 5; i++)
{
while(true)
{
Integer next = rng.nextInt(5) ;
if (!generated.contains(next))
{
generated.add(next);
ImageView iv = (ImageView)findViewById(R.id.imageView1);
iv.setImageResource(images[next]);
break;
}
}
}
}
});


}


}

big lost
چهارشنبه 21 خرداد 1393, 21:49 عصر
لطفا یکی جواب منو بده

dasssnj
پنج شنبه 22 خرداد 1393, 11:05 صبح
با این کد هر بار که روی دکمه کلیک بشه عکس بعدی را نشون می ده و هر وقت عکس ها به آخر رسید دوباره از اول شروع می کنه. (البته من تستش نکردم همین الان نوشتمش شما تست کن مشکلی نداشته باشه)

package com.example.image;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;


public class MainActivity extends Activity
{

int index = 0;
final int[] images = {
R.drawable.easy1, R.drawable.easy2,
R.drawable.easy3, R.drawable.easy4,
R.drawable.ic_launcher };



@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button shuffle = (Button) findViewById(R.id.button1);
shuffle.setOnClickListener(new View.OnClickListener()
{
public void onClick(View view)
{
if(index < 4){
ImageView iv = (ImageView)findViewById(R.id.imageView1);
iv.setImageResource(images[index++]);


}
else {
index = 0;
ImageView iv = (ImageView)findViewById(R.id.imageView1);
iv.setImageResource(images[index++]);


}
}
}
}
});


}


}

big lost
پنج شنبه 22 خرداد 1393, 14:38 عصر
مرسی از این که کمکم کردین

یه سری ارور جزئی داشت که درستش کردم


package com.example.image;


import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;


public class MainActivity extends Activity
{

int index = 0;
final int[] images = {
R.drawable.easy1, R.drawable.easy2,
R.drawable.easy3, R.drawable.easy4,
};



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


ImageView shuffle = (ImageView)findViewById(R.id.imageView1);
shuffle.setOnClickListener(new View.OnClickListener()
{
public void onClick(View view)
{
if(index < 4){
ImageView iv = (ImageView)findViewById(R.id.imageView1);
iv.setImageResource(images[index++]);


}
else {
index = 0;
ImageView iv = (ImageView)findViewById(R.id.imageView1);
iv.setImageResource(images[index++]);

}
}


});


}
}

dasssnj
پنج شنبه 22 خرداد 1393, 20:03 عصر
بله گفته بودم تستش نکردم. فقط نوشتمش.