2016-12-19 1 views
0

Я пытаюсь сделать фрагмент, который имеет макет с несколькими кнопками, на каждой кнопке мы можем захватывать разные изображения и сохранять их в галерее. Я хочу, чтобы захватить изображение на 1-й клик и 2-й клик на той же кнопке, я хочу отобразить то же изображение, которое было сохранено с пользовательским именем в галерее. **, когда я вновь открыть галерею он спрашивает снова, чтобы захватить изображение, но я хочу, чтобы отображать только изображение, когда она уже была нажата последний раз1-й клик открывает камеру и отображает 2-х кликов. когда я снова открываю приложение, тогда он должен отображать снятое изображение на 1-м клике

enter code here ** btn.setOnClickListener (новый View.OnClickListener() { @Override общественного недействительными OnClick (View вид) { // если (uri.equals (URI)) clickcount1 = clickcount1 + 1; если (clickcount1 == 1) {

    Intent in = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
        SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy-HH-mm-ss"); 
        // SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy-HH-mm-ss"); 

        String datetime = sdf.format(new Date(System.currentTimeMillis())); 
        Log.i("DateTime", datetime); 
        //String datetime = DateFormat.getTimeInstance().format(new Date()).toString(); 
        File folder = new File(Environment.getExternalStorageDirectory().getAbsolutePath(), "MY_Docs"); 
        if (!folder.exists()) 
         folder.mkdirs(); 
        File file = new File(folder, "Aadhar_" + datetime + ".jpg"); 
        try { 
         file.createNewFile(); 
        } 
        catch (Exception e) { 
         Log.e("creating file exception", e.toString()); 
        } 
        uriaadhar = Uri.fromFile(file); 
        Log.i("URI after file creation", uriaadhar.toString()); 
        Toast.makeText(getActivity(), "After file conversion to uri", Toast.LENGTH_SHORT).show(); 
        in.putExtra(MediaStore.EXTRA_OUTPUT, uriaadhar); 
        startActivity(in); 
       } 

      if (clickcount1 >= 2) 
      { 
        String filepath = uriaadhar.getPath(); 
        Log.e("FilePath2", filepath); 
        AlertDialog.Builder ab = new AlertDialog.Builder(getActivity()); 
        View v = inflater.inflate(R.layout.doc1, null); 
        ab.setView(v); 
        ab.setTitle("Aadhar Card"); 
        ImageView ivAadhar = (ImageView) v.findViewById(R.id.iv_Aadhar); 
        Bitmap bitmap=BitmapFactory.decodeFile(filepath); 
       //Code for marshmallow to display image in imageview 
       int nh = (int) (bitmap.getHeight() * (512.0/bitmap.getWidth())); 
       Bitmap scaled = Bitmap.createScaledBitmap(bitmap, 600, nh, true); 

        ivAadhar.setImageBitmap(scaled); 
        //ivAadhar.setImageBitmap(BitmapFactory.decodeFile(filepath)); 
        ab.setPositiveButton("OK", new DialogInterface.OnClickListener() { 
         @Override 
         public void onClick(DialogInterface dialogInterface, int i) { 
          dialogInterface.dismiss(); 
         } 
        }); 
        ab.show(); 

      } 

     } 

    }); 

ответ

1

Сделать свой переменная счетчика кликов статическая

private static int clickcount1 = 0; 

Или вы можете сохранить состояние своего режима в sharedPeference, чтобы вы могли его повторно использовать, когда захотите.

+0

Можете ли вы, пожалуйста, использовать строку кода clickcount1 = 2; Я не могу это понять .. –

+0

Я неправильно понимаю ваш вопрос, просто использую статическую переменную или использую сортировку данных для хранения значения, поэтому, когда ваше приложение снова запускается, он знает, какая кнопка уже сделана на последнем шаге. Я отредактирую ответ. –