2016-12-30 273 views
2

我想使用的应用程序 扫描条形码斑马线条形码扫描器创建如何斑马线条形码扫描器不能全屏显示只有一半的屏幕

像黑莓Messenger

enter image description here

这是我的代码“MainActivity.java

package com.example.ridwan.myapplication; 

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.widget.TextView; 

import info.vividcode.android.zxing.CaptureActivity; 
import info.vividcode.android.zxing.CaptureActivityIntents; 

public class MainActivity extends AppCompatActivity { 

    private TextView tvScanResult; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     Intent captureIntent = new Intent(MainActivity.this, CaptureActivity.class); 
     CaptureActivityIntents.setPromptMessage(captureIntent, "Barcode scanning..."); 
     startActivityForResult(captureIntent, 0); 

     tvScanResult = (TextView) findViewById(R.id.tv_scanresult); 
    } 

    @Override 
    public void onActivityResult(int requestCode, int resultCode, Intent data) { 
     if (requestCode == 0) { 
      if (resultCode == Activity.RESULT_OK && data != null) { 
       String value = data.getStringExtra("SCAN_RESULT"); 
       tvScanResult.setText(value); 
      } else if (resultCode == Activity.RESULT_CANCELED) { 
       tvScanResult.setText("Scanning Gagal, mohon coba lagi."); 
      } 
     } else { 

     } 
     super.onActivityResult(requestCode, resultCode, data); 
    } 


} 

然后这是我的” activity_main.xml中

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context="com.example.ridwan.myapplication.MainActivity" 
    tools:showIn="@layout/activity_main"> 

    <TextView 
     android:layout_marginTop="50dp" 
     android:id="@+id/tv_scanresult_title" 
     android:layout_centerHorizontal="true" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Result Scan : " /> 

    <TextView 
     android:layout_below="@id/tv_scanresult_title" 
     android:id="@+id/tv_scanresult" 
     android:layout_centerHorizontal="true" 
     android:layout_width="wrap_content" 
     android:textColor="#ff1493" 
     android:layout_height="wrap_content" 
     android:text="_" /> 

</RelativeLayout> 

你能不能给我解决? 我想在条码中的条码。

回答

0

请MainActivity添加该代码

在摇篮加入这Libray在扶养

compile 'com.journeyapps:zxing-android-embedded:[email protected]' 
compile 'me.dm7.barcodescanner:zxing:1.9' 

添加罐子zbar.jar

public class MainActivity extends AppCompatActivity implements ZXingScannerView.ResultHandler { 

ZXingScannerView mScannerView; 

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     QCscanner = (Button) findViewById(R.id.QCscanner); 



mScannerView = new ZXingScannerView(this); 
    QCscanner.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      try { 
       /*Intent intent = new Intent("com.google.zxing.client.android.SCAN"); 
       intent.putExtra("SCAN_MODE", "QR_CODE_MODE"); 
       startActivityForResult(intent, 0);*/ 
       mScannerView = new ZXingScannerView(MainActivity.this); // Programmatically initialize the scanner view<br /> 
       setContentView(mScannerView); 
       mScannerView.setResultHandler(MainActivity.this); // Register ourselves as a handler for scan results.<br /> 
       mScannerView.startCamera(); 
      } catch (Exception ex) { 
       ex.printStackTrace(); 
      } 
     } 
    }); 

}

@Override 
public void handleResult(Result result) { 
    Log.e("", result.getText()); // Prints scan results<br /> 
    Log.e("", result.getBarcodeFormat().toString()); 

    Toast.makeText(MainActivity.this, "" + result.getText() + "\n" + result.getBarcodeFormat().toString(), Toast.LENGTH_SHORT).show(); 

} 

}

+0

这是我的代码,条码已经运行了,但是我不想全屏扫描条码,我想扫描条码只有一半屏幕 –

+0

使用FrameLayout decalre高度和宽度,并在布局中调用你的条码xml –

+0

barcode.xml? 即时通讯只有2个文件(1个java和1个xml) –

1

我已经通过使用ZXing Android Embedded达到了您所寻找的效果/ UI。非常直接的实施 - 它还包括一个火炬功能。

相关问题