在imageviewer中显示图像

时间:2018-02-11 19:10:22

标签: android android-button

按钮的初始目标是允许用户将图像保存到图像查看器中。这有效,但我使用的方法将图像存储到图像查看器中。

当按下另一个按钮时,我不允许将图像保存到另一个图像查看器中。

我在考虑使用 if 语句:

if (button is pressed) {
    code runs
} else if (button pressed) {
    code runs
} ...

但我不知道如何为Android做这件事。

请有人帮我这个。

public class gallery extends AppCompatActivity  {
    ImageView image1;
    Integer Ask_for_camera = 2, file = 1;
    Button btnimage1;
    Button btnimage2;
    EditText ettext1;
    private FirebaseAuth auth;
    private FirebaseDatabase firebaseDatabase;
    private DatabaseReference gallerytext;
    private HashMap<String,String>savedtext;
    Button btntext1;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_gallery);
        image1 = (ImageView) findViewById(R.id.image1);
        btnimage1 = (Button) findViewById(R.id.btnimage1);
        btnimage2 = (Button) findViewById(R.id.btnimage2);
        ettext1 = (EditText) findViewById(R.id.ettext1);
        btntext1 = (Button) findViewById(R.id.btntext1);
        btntext1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                savetext();
            }
        });
        btnimage1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                image1();
            }
        });
        btnimage2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view){
                image1();
            }    
        });
        initialise();    
    }

    public void savetext() {
        savedtext = new HashMap<String,String>();
        savedtext.put("gallerytext", ettext1.getText().toString());
        gallerytext.child(auth.getCurrentUser().getUid()).setValue(savedtext);
    }

    public void initialise() {
        auth = FirebaseAuth.getInstance();
        firebaseDatabase = FirebaseDatabase.getInstance();
        gallerytext = firebaseDatabase.getReference("savedtext");
    }

    private void image1() {
        final CharSequence[] items = {"Camera", "From Gallery", "Cancel"};
        AlertDialog.Builder Builder = new AlertDialog.Builder(gallery.this);
        Builder.setTitle("Click to add image");

        Builder.setItems(items, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int option) {
                if (items[option].equals("Camera")) {
                    Intent in = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                    startActivityForResult(in, Ask_for_camera);

                } else if (items[option].equals("From Gallery")) {
                    Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
                    intent.setType("image/");
                    startActivityForResult(intent.createChooser(intent, "Select a File"), file);

                } else if (items[option].equals("Cancel")){
                    dialogInterface.dismiss();
                }
            }
        });
        Builder.show();    
    }

    @Override
    public void onActivityResult(int requestcode, int resultcode, Intent data) {
        super.onActivityResult(requestcode, resultcode, data);

        if (resultcode == Activity.RESULT_OK) {

            if (requestcode == Ask_for_camera) {    
                Bundle b = data.getExtras();
                final Bitmap bm = (Bitmap) b.get("data");
                image1.setImageBitmap(bm);    
            } else if (requestcode == file) {    
                Uri imageselected = data.getData();
                image1.setImageURI(imageselected);
            }    
        }
    }

}

1 个答案:

答案 0 :(得分:0)

在onCreate()之前声明两个布尔变量:

private boolean isButton1Clcik= false;
private boolean isButton2Clcik= false;

现在根据按钮点击()更新变量:

btnimage1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
isButton1Clcik= true;            
image1();
        }
    });

  btnimage2.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view){
isButton2Clcik=true;
            image1();
        }

    });

用以下代码替换onActivityResult:

@Override
public void onActivityResult(int requestcode, int resultcode, Intent data){
    super.onActivityResult(requestcode, resultcode, data);



    if (resultcode == Activity.RESULT_OK) {
       if(isButton1Clcik){

        if (requestcode == Ask_for_camera){

            Bundle b = data.getExtras();
            final Bitmap bm = (Bitmap) b.get("data");
            image1.setImageBitmap(bm);

        }else if (requestcode == file){

            Uri imageselected = data.getData();
            image1.setImageURI(imageselected);
        }
        isButton1Clcik=false;
     } else if(isButton2Clcik){
        if (requestcode == Ask_for_camera){

            Bundle b = data.getExtras();
            final Bitmap bm = (Bitmap) b.get("data");
            image2.setImageBitmap(bm);

        }else if (requestcode == file){

            Uri imageselected = data.getData();
            image2.setImageURI(imageselected);
        } 

          isButton2Clcik=false;
     }//end of check Button 2 click
  }//end of check resultCode

} 

注意:image2是第二个图像视图的对象,代码中没有image2!