【问题标题】:Click on Button to display image点击按钮显示图片
【发布时间】:2018-02-11 13:46:10
【问题描述】:

我正在尝试创建一个简单的 android 应用程序,它有多个按钮,但只有 1 个 imageView。每个按钮都有一个独特的图像。单击时它会显示在 imageView 中。这是我的java代码:

public void poundedYamFunction(View view){

    ImageView swallowImage = (ImageView) view;
    swallowImage.setImageResource(R.drawable.poundedyam);
}

public void ebaFunction(View view){

    ImageView swallowImage = (ImageView) view;
    swallowImage.setImageResource(R.drawable.eba);
}

public void semoFunction(View view){

    ImageView swallowImage = (ImageView) view;
    swallowImage.setImageResource(R.drawable.semo);
}

【问题讨论】:

  • 您是否遇到了某种错误?

标签: java android image button


【解决方案1】:

根据细节和代码,多个按钮与不同的视图相关联,这里的View view 引用是对Buttons 的引用而不是图像视图,因此您需要初始化imageView 引用并相应地设置图像.

喜欢

ImageView img;

...oncreate(..){
    setContentView(..);
    img = (ImageView)findViewById(R.id.id_of_image_view);
}

public void poundedYamFunction(View view){

    img.setImageResource(R.drawable.poundedyam);
}

public void ebaFunction(View view){

    img.setImageResource(R.drawable.eba);
}

【讨论】:

  • 感谢 Pavneet,我遵循了这段代码,但只有 poundedYamFunction 起作用,其他按钮没有改变图像,它只是显示的 poundedYamFunction 的图像
  • @Burburj 确保您的其他按钮指向不同的方法,或发布您的 xml
【解决方案2】:

您可以使用以下代码实现它。使用View.OnClickListeneronClick(View view) 更改图像实施活动。

    public class MainActivity2 extends AppCompatActivity implements View.OnClickListener {

    ImageView imageView;
    Button button1, button2;

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

        imageView = findViewById(R.id.image_view);
        button1 = findViewById(R.id.button_1);
        button2 = findViewById(R.id.button_2);

        imageView.setOnClickListener(this);
        button1.setOnClickListener(this);
        button2.setOnClickListener(this);
    }

    @Override
    public void onClick(View view) {

        int id = view.getId();

        switch (id) {

            case R.id.button_1:
                imageView.setImageResource(R.drawable.poundedyam);
                break;

            case R.id.button_2:
                imageView.setImageResource(R.drawable.eba);
                break;
        }
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-10
    • 1970-01-01
    • 1970-01-01
    • 2013-09-29
    • 2020-05-05
    • 1970-01-01
    • 1970-01-01
    • 2022-12-13
    相关资源
    最近更新 更多