2017-01-17 5 views
0

Я пытаюсь сделать сканер QR-кода, который открыт во фрагменте, для этого я использую библиотеку zxing. Теперь я могу успешно открыть камеру для сканирования QR-кода. Однако, поскольку я использую намерение открыть камеру, он вместо этого открывает другое действие. Я пытаюсь открыть камеру внутри фрагмента и только в средней части экрана. Я веруя вид поверхности и камеры предварительного просмотра может помочь мне сделать это, но я не уверен, как реализовать этоОткрыть камеру в середине экрана android для qr-кода

public class QRscanner extends Fragment { 
private IntentIntegrator qrScan; 
public QRscanner() { 
} 
public static QRscanner newInstance(String text){ 
    Bundle args = new Bundle(); 
    QRscanner qrScanner = new QRscanner(); 
    qrScanner.setArguments(args); 
    return qrScanner; 
} 
@Nullable 
@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    View rootView = inflater.inflate(R.layout.qr_scanner, container, false); 
    IntentIntegrator qrScan = new IntentIntegrator(getActivity()); 
    qrScan.initiateScan(); 
    return rootView; 
} 
@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data); 
    if (result != null) { 
     //if qrcode has nothing in it 
     if (result.getContents() == null) { 
      Toast.makeText(getActivity(), "Result Not Found", Toast.LENGTH_LONG).show(); 
     } else { 
      //if qr contains data 
      try { 
       //converting the data to json 
       JSONObject obj = new JSONObject(result.getContents()); 
       String testing = obj.getString("test"); 
       System.out.println(testing); 
       //setting values to textviews 
      } catch (JSONException e) { 
       e.printStackTrace(); 
       //if control comes here 
       //that means the encoded format not matches 
       //in this case you can display whatever data is available on the qrcode 
       //to a toast 
       Toast.makeText(getActivity(), result.getContents(), Toast.LENGTH_LONG).show(); 
      } 
     } 
    } else { 
     super.onActivityResult(requestCode, resultCode, data); 
    } 
} 
} 

the dark block is the camera and the white is the rest of the screen

+0

Вы можете использовать следующую библиотеку: https://github.com/nipun-birla/QRReaderView –

ответ

0

Пожалуйста, посетите ZXing библиотеку на GitHub.

Это может вам помочь.

 Смежные вопросы

  • Нет связанных вопросов^_^