我在纵向模式下制作了ZXing。现在我要让它出现在片段下面。我怎么能这样做?它总是在全屏,这绝对不是我想要的。 非常感谢任何提示或样品。
与his work类似,但它是一个片段,它是一个条形码扫描器。
QRCodeReader.java:
public class QRCodeReader extends Activity implements TopBar.OnFragmentInteractionListener, QRCodeReaderInner.OnFragmentInteractionListener{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.page_qrcodereader);
FragmentManager fm = getFragmentManager();
Fragment f = fm.findFragmentById(R.id.fragment_scanner);
if (f == null) {
f = QRCodeReaderInner.newInstance("param1", "param2");
fm.beginTransaction().add(R.id.fragment_scanner, f).commit();
}
}
...
}
page_qrcodereader.xml
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<fragment
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:name="com.innoasia.kaytami.innoasia.ui.generic.TopBar"
android:id="@+id/fragment" />
<fragment
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:name="com.innoasia.kaytami.innoasia.ui.page.QRCodeReaderInner"
android:id="@+id/fragment_scanner" />
</LinearLayout>
答案 0 :(得分:2)
检查出来:
您必须使YourActivity扩展CaptureActivity。有一个名为handleDecode(Result rawResult, Bitmap barcode)
的覆盖方法。您将在此处获得扫描结果。
public class ScanCard extends CaptureActivity {
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.scan_card);
}
@Override
public void handleDecode(Result rawResult, Bitmap barcode) {
// TODO Auto-generated method stub
super.handleDecode(rawResult, barcode);
mScanResult = rawResult.getText().toString();
// Result After scanning the QR code.
}
}
}
在R.layout.scan_card
xml文件中添加以下内容。我只是将扫描区域的宽度和高度设置为&#34; 300dip&#34;调整到您自己的大小。
<RelativeLayout
android:id="@+id/relativeScanLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:orientation="vertical"
android:padding="5dip" >
<FrameLayout
android:id="@+id/frame_scan"
android:layout_width="300dip"
android:layout_height="300dip"
android:layout_centerInParent="true"
android:layout_gravity="center" >
<include layout="@layout/capture" />
// Include the scanning area here
</FrameLayout>
确保您已将Zxing Project
添加到构建路径中。
如果您有任何疑问,请与我们联系。
答案 1 :(得分:0)
您可以做的最简单的事情是修改ZXing库的capture.xml,并通过startActivityForResult或通过创建将为您的Activity提供回调的接口来对您的Activity进行单击回调。
这是一个小例子,就像我为使Scanner看起来像是在TabActivity中所做的那样:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<SurfaceView
android:id="@+id/preview_view"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_centerInParent="true" />
<com.google.zxing.client.android.ViewfinderView
android:id="@+id/viewfinder_view"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/transparent" />
<LinearLayout
android:id="@+id/result_view"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/result_view"
android:orientation="vertical"
android:padding="4dip"
android:visibility="gone" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="top"
android:orientation="horizontal"
android:padding="12dip" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:gravity="right"
android:orientation="vertical" >
<ImageView
android:id="@+id/barcode_image_view"
android:layout_width="160dip"
android:layout_height="wrap_content"
android:layout_marginBottom="4dip"
android:adjustViewBounds="true"
android:maxHeight="160dip"
android:maxWidth="160dip"
android:scaleType="centerInside" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:id="@+id/format_text_view_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingRight="4dip"
android:text="@string/msg_default_format"
android:textColor="@color/result_minor_text"
android:textSize="14sp"
android:textStyle="bold" />
<TextView
android:id="@+id/format_text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/result_minor_text"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:id="@+id/type_text_view_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingRight="4dip"
android:text="@string/msg_default_type"
android:textColor="@color/result_minor_text"
android:textSize="14sp"
android:textStyle="bold" />
<TextView
android:id="@+id/type_text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/result_minor_text"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:id="@+id/time_text_view_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingRight="4dip"
android:text="@string/msg_default_time"
android:textColor="@color/result_minor_text"
android:textSize="14sp"
android:textStyle="bold" />
<TextView
android:id="@+id/time_text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/result_minor_text"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:id="@+id/meta_text_view_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingRight="4dip"
android:text="@string/msg_default_meta"
android:textColor="@color/result_minor_text"
android:textSize="14sp"
android:textStyle="bold" />
<TextView
android:id="@+id/meta_text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/result_minor_text"
android:textSize="14sp" />
</LinearLayout>
</LinearLayout>
<ScrollView
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/contents_text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:autoLink="web"
android:paddingLeft="12dip"
android:textColor="@color/result_text"
android:textColorLink="@color/result_text"
android:textSize="22sp" />
</ScrollView>
</LinearLayout>
</LinearLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|center_horizontal"
android:background="@color/transparent"
android:textColor="@color/status_text"
android:textSize="14sp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom|center_horizontal"
android:orientation="horizontal"
android:paddingTop="4dp" >
<ImageButton
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:padding="10dp" />
<ImageView
android:layout_width="1sp"
android:layout_height="match_parent"
android:layout_marginBottom="5dp"
android:layout_marginTop="5dp"
android:background="#3B6816" />
<ImageButton
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="1"
android:background="@null" />
<ImageView
android:layout_width="1sp"
android:layout_height="match_parent"
android:layout_marginBottom="5dp"
android:layout_marginTop="5dp"
android:background="#3B6816" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:orientation="horizontal"
android:padding="10dp" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:gravity="center"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="@android:color/black"
android:textStyle="bold" />
</LinearLayout>
</LinearLayout>
让我知道这是否有助于你...