2017-02-18 8 views
0

Я создал скриншот для своей деятельности в programatically.it работать отлично. У меня проблема после того, как вы сняли изображение, отображаемое в моей деятельности. Как скрыть его?если я снимаю снимок экрана, изображение с экрана снимается в моей активности. Как скрыть его?

Mycode:

public class MainActivity extends AppCompatActivity { 

    File cacheDir; 
    final Context context = this; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     Button print = (Button) findViewById(R.id.btn_print); 

     print.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       takeScreenShot(); 
      } 
     }); 



    } 

     private void takeScreenShot() { 

     View u = findViewById(R.id.activity_main); 

     int spec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED); 
     u.measure(spec, spec); 
     u.layout(0, 0, u.getMeasuredWidth(), u.getMeasuredHeight()); 

     Bitmap b = getBitmapFromView(u,u.getMeasuredHeight(),u.getMeasuredWidth()); 

     final String root = Environment.getExternalStorageDirectory().toString(); 

     File myPath = new File(root + "/saved_img"); 
     myPath.mkdirs(); 
     Random generator = new Random(); 
     int n = 10000; 
     n = generator.nextInt(n); 
     String fname = "Image-"+n+".jpg"; 
     File file = new File(myPath, fname); 
     FileOutputStream fos = null; 
     if(file.exists()) file.delete(); 
     try{ 
      fos = new FileOutputStream(file); 
      b.compress(Bitmap.CompressFormat.JPEG, 100, fos); 
      fos.flush(); 
      fos.close(); 


     } catch(FileNotFoundException e){ 
      e.printStackTrace(); 
     } catch (Exception e){ 
      e.printStackTrace(); 
     } 

     Toast.makeText(this,"screen captured",Toast.LENGTH_SHORT).show(); 
    } 



    public Bitmap getBitmapFromView(View u, int totalHeight, int totalWidth){ 
     Bitmap returnedBitmap = Bitmap.createBitmap(totalWidth,totalHeight , Bitmap.Config.ARGB_8888); 
     Canvas canvas = new Canvas(returnedBitmap); 

     Drawable bgDrawable = u.getBackground(); 
     if (bgDrawable != null) 
      bgDrawable.draw(canvas); 
     else 
      canvas.drawColor(Color.WHITE); 
     u.draw(canvas); 
     return returnedBitmap; 
    } 
} 

как решить эту проблему? мой вывод изображение на кнопку до щелчка,

enter image description here

это мой выход 2 для после того, как нажать на кнопку, enter image description here

+0

, что и нужно сделать? вам нужен только скриншот? но не показано, что в вашей деятельности правильно? –

+0

yes.correct.how, чтобы скрыть показ моего снимка экрана в действии ... –

+0

не использовать getBitmapFromview, то как получить высоту и ширину активности во всей деятельности? –

ответ

0

это мой mistake.after получать скриншот я установить размер макета на улавливание размера изображения (основанный на измерении ширины & height) i снимите нижнюю строку в программе, она отлично работает.

u.layout (0, 0, u.getMeasuredWidth(), u.getMeasuredHeight());

, потому что набор линии сохраненного изображения Точный высоты & ширин в текущий layout.so, который error.i решил it.thanks за вашу помощь для all.thanks еще раз ...