2017-01-17 1 views
0

변경된 내용의 QRCode을 생성/생성하려고 Stream_RingSeekBar 값을 변경했습니다. 하지만 문제는 내가 얻을 수/저장 할 수 없습니다 onProgressChanged 방법의 QR을 생성하기 위해 내가 필요로하는 값 값.변경된 SeekBar 값에 대한 QR 코드를 생성 할 수 없습니다.

나는 문제를 찾아내려고했지만 그렇게 할 수 없었다. 귀하의 편의를 위해 전체 QR 코드를 업로드하고 있습니다.

Button gene; 
    ImageView image; 
    SeekBar ring_bar; 
    String collect; 
    private AudioManager am; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_prof); 

     gene = (Button) findViewById(R.id.gene); 
     image = (ImageView) findViewById(R.id.image); 
     ring_bar = (SeekBar) findViewById(R.id.ring_bar); 
     am = (AudioManager)getSystemService(Context.AUDIO_SERVICE); 

     int maxV = am.getStreamMaxVolume(AudioManager.STREAM_RING); 
     int curV = am.getStreamVolume(AudioManager.STREAM_RING); 
     ring_bar.setMax(maxV); 
     ring_bar.setProgress(curV); 
     ring_bar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { 
      @Override 
      public void onStopTrackingTouch(SeekBar arg0) { 
      } 

      @Override 
      public void onStartTrackingTouch(SeekBar arg0) { 
      } 

      @Override 
      public void onProgressChanged(SeekBar arg0, int progress, boolean arg2) { 
       am.setStreamVolume(AudioManager.STREAM_RING, progress, 0); 
      } 
     }); 

     int ring = ring_bar.getProgress(); 

     String ringgg = Integer.toString(ring); 

     collect = ringgg; 

     gene.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 

       MultiFormatWriter multiFormatWriter = new MultiFormatWriter(); 
       try{ 
        BitMatrix bitMatrix = multiFormatWriter.encode(collect, BarcodeFormat.QR_CODE,200,200); 
        BarcodeEncoder barcodeEncoder = new BarcodeEncoder(); 
        Bitmap bitmap = barcodeEncoder.createBitmap(bitMatrix); 
        image.setImageBitmap(bitmap); 
       } 
       catch (WriterException e){ 
        e.printStackTrace(); 
       } 

      } 
     }); 
    } 

} 

답변

0

문제점은 onCreate에서 진행 상황을 저장하고 있었지만 이후에는 값을 업데이트하지 못했습니다. 현재 값에 대한 QR을 만들려면 onClickListener에서 getProgress()를 호출하여 진행률 막대의 현재 값을 반환해야했습니다.

gene.setOnClickListener(new View.OnClickListener() { 
@Override 
public void onClick(View view) { 

    MultiFormatWriter multiFormatWriter = new MultiFormatWriter(); 
    try{ 
     int ringtoneVolumeValue = ring_bar.getProgress(); 
     String ringtoneVolume = Integer.toString(ringtoneVolumeValue); 
     BitMatrix bitMatrix = multiFormatWriter.encode(ringtoneVolume, BarcodeFormat.QR_CODE,200,200); 
     //.... 
    } 
    catch (WriterException e){ 
     e.printStackTrace(); 
    } 

} 

});

관련 문제