Android ImageView onClick
Android ImageView onClick
我是 Android 开发新手。
我在数组中有 5 张图片,我想在点击时更改图片,所以这就是我所做的,但图片不会改变。
</p>
<pre><code> int[] images = {R.drawable.pic_1,
R.drawable.pic_2,
R.drawable.pic_3,
R.drawable.pic_4,
R.drawable.pic_5};
int plus = 0 ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_main2);
ImageView img = (ImageView) findViewById(R.id.imageView);
Bitmap bImage ;
Button b1 = (Button) findViewById(R.id.button);
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
plus++;
}
});
Button b2 = (Button) findViewById(R.id.button2);
b2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
plus--;
}
});
bImage = BitmapFactory.decodeResource(this.getResources(),images[plus]);
img.setImageBitmap(bImage);
}
有人知道可以这样工作吗?
提前致谢。
试试这个:
int[] images = {R.drawable.pic_1,
R.drawable.pic_2,
R.drawable.pic_3,
R.drawable.pic_4,
R.drawable.pic_5};
int plus = 0 ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_main2);
ImageView img = (ImageView) findViewById(R.id.imageView);
Bitmap bImage ;
Button b1 = (Button) findViewById(R.id.button);
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(plus<4){
plus++;
img.setBackgroundResource(images[plus]);
}
}
});
Button b2 = (Button) findViewById(R.id.button2);
b2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(plus>0){
plus--;
img.setBackgroundResource(images[plus]);
}
}
});
bImage = BitmapFactory.decodeResource(this.getResources(),images[plus]);
img.setImageBitmap(bImage);
}
我认为您应该精通 Android Activity 生命周期。基本的了解将对您开始 android 开发非常有帮助。
OnCreate 方法仅在创建 activity 时调用一次。因此,在您的 onclicklisteners 中,您还应该放置用于更改图像位图的代码。所以你的 onclicklistener 应该是这样的:
plus++;
bImage = BitmapFactory.decodeResource(this.getResources(),images[plus]);
img.setImageBitmap(bImage);
这只是上述问题的一个解决方案,但我强烈建议您通过基本的 android 概念来开始您的应用程序开发,而不要陷入琐碎的问题。
祝你好运!
设置全局变量
private int imageclick=0;
并使用以下逻辑
ImageView img = (ImageView) findViewById(R.id.imageView);
Bitmap bImage ;
Button b1 = (Button) findViewById(R.id.button);
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ImageView img = (ImageView) findViewById(R.id.imageView);
Bitmap bImage ;
Button b1 = (Button) findViewById(R.id.button);
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(imageclick==0)
{
img.setImageResource(R.drawable.pic_1);
imageclick=1;
}
else if(imageclick==1)
{
img.setImageResource(R.drawable.pic_2);
imageclick=2;
}
else if(imageclick==2)
{
img.setImageResource(R.drawable.pic_3);
imageclick=3;
}
else if(imageclick==3)
{
img.setImageResource(R.drawable.pic_4);
imageclick=4;
}
else if(imageclick==4)
{
img.setImageResource(R.drawable.pic_5);
imageclick=0;
}
}
});
Button b2 = (Button) findViewById(R.id.button2);
b2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(imageclick==0)
{
img.setImageResource(R.drawable.pic_4);
imageclick=4;
}
else if(imageclick==1)
{
img.setImageResource(R.drawable.pic_3);
imageclick=0;
}
else if(imageclick==2)
{
img.setImageResource(R.drawable.pic_2);
imageclick=1;
}
else if(imageclick==3)
{
img.setImageResource(R.drawable.pic_1);
imageclick=2;
}
else if(imageclick==4)
{
img.setImageResource(R.drawable.pic_5);
imageclick=3;
}
}
}
});
bImage = BitmapFactory.decodeResource(this.getResources(),images[plus]);
img.setImageBitmap(bImage);
}
这个逻辑可能适合你
我是 Android 开发新手。 我在数组中有 5 张图片,我想在点击时更改图片,所以这就是我所做的,但图片不会改变。
</p>
<pre><code> int[] images = {R.drawable.pic_1,
R.drawable.pic_2,
R.drawable.pic_3,
R.drawable.pic_4,
R.drawable.pic_5};
int plus = 0 ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_main2);
ImageView img = (ImageView) findViewById(R.id.imageView);
Bitmap bImage ;
Button b1 = (Button) findViewById(R.id.button);
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
plus++;
}
});
Button b2 = (Button) findViewById(R.id.button2);
b2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
plus--;
}
});
bImage = BitmapFactory.decodeResource(this.getResources(),images[plus]);
img.setImageBitmap(bImage);
}
有人知道可以这样工作吗? 提前致谢。
试试这个:
int[] images = {R.drawable.pic_1,
R.drawable.pic_2,
R.drawable.pic_3,
R.drawable.pic_4,
R.drawable.pic_5};
int plus = 0 ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_main2);
ImageView img = (ImageView) findViewById(R.id.imageView);
Bitmap bImage ;
Button b1 = (Button) findViewById(R.id.button);
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(plus<4){
plus++;
img.setBackgroundResource(images[plus]);
}
}
});
Button b2 = (Button) findViewById(R.id.button2);
b2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(plus>0){
plus--;
img.setBackgroundResource(images[plus]);
}
}
});
bImage = BitmapFactory.decodeResource(this.getResources(),images[plus]);
img.setImageBitmap(bImage);
}
我认为您应该精通 Android Activity 生命周期。基本的了解将对您开始 android 开发非常有帮助。
OnCreate 方法仅在创建 activity 时调用一次。因此,在您的 onclicklisteners 中,您还应该放置用于更改图像位图的代码。所以你的 onclicklistener 应该是这样的:
plus++;
bImage = BitmapFactory.decodeResource(this.getResources(),images[plus]);
img.setImageBitmap(bImage);
这只是上述问题的一个解决方案,但我强烈建议您通过基本的 android 概念来开始您的应用程序开发,而不要陷入琐碎的问题。
祝你好运!
设置全局变量
private int imageclick=0;
并使用以下逻辑
ImageView img = (ImageView) findViewById(R.id.imageView);
Bitmap bImage ;
Button b1 = (Button) findViewById(R.id.button);
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ImageView img = (ImageView) findViewById(R.id.imageView);
Bitmap bImage ;
Button b1 = (Button) findViewById(R.id.button);
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(imageclick==0)
{
img.setImageResource(R.drawable.pic_1);
imageclick=1;
}
else if(imageclick==1)
{
img.setImageResource(R.drawable.pic_2);
imageclick=2;
}
else if(imageclick==2)
{
img.setImageResource(R.drawable.pic_3);
imageclick=3;
}
else if(imageclick==3)
{
img.setImageResource(R.drawable.pic_4);
imageclick=4;
}
else if(imageclick==4)
{
img.setImageResource(R.drawable.pic_5);
imageclick=0;
}
}
});
Button b2 = (Button) findViewById(R.id.button2);
b2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(imageclick==0)
{
img.setImageResource(R.drawable.pic_4);
imageclick=4;
}
else if(imageclick==1)
{
img.setImageResource(R.drawable.pic_3);
imageclick=0;
}
else if(imageclick==2)
{
img.setImageResource(R.drawable.pic_2);
imageclick=1;
}
else if(imageclick==3)
{
img.setImageResource(R.drawable.pic_1);
imageclick=2;
}
else if(imageclick==4)
{
img.setImageResource(R.drawable.pic_5);
imageclick=3;
}
}
}
});
bImage = BitmapFactory.decodeResource(this.getResources(),images[plus]);
img.setImageBitmap(bImage);
}
这个逻辑可能适合你