首页 文章

如何在startCamera()方法之后(使用xzing库扫描QR码)将AdMob Banner 添加到相机活动?

提问于
浏览
0

我使用com.google.zxing.Result和me.dm7.barcodescanner.zxing.ZXingScannerView包中的一个名为zxing的库来扫描我的新应用中的二维码,但是我无法在底部放置一个Admob Banner . 扫描QR码的Camera Activity,我不知道如何让它出现在Camera Acvitity中,因为相机活动似乎没有布局XML来放置admob XML代码 .

public class MainActivity extends AppCompatActivity implements ZXingScannerView.ResultHandler {

private ZXingScannerView mScannerView;
MarshMallowPermission marshMallowPermission = new MarshMallowPermission(this);

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

/*AdView mAdView = (AdView) findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder().build();
mAdView.loadAd(adRequest);*/

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
    if (checkSelfPermission(Manifest.permission.CAMERA)
            != PackageManager.PERMISSION_GRANTED) {

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            requestPermissions(new String[]{Manifest.permission.CAMERA},
                    MY_REQUEST_CODE);
        }
    }
}

mScannerView = new ZXingScannerView(this);   // Programmatically initialize the scanner view
setContentView(mScannerView);

mScannerView.setResultHandler(this); // Register ourselves as a handler for scan results.
mScannerView.startCamera();         // Start camera

我尝试使用此代码将 Banner 放在活动相机的底部,但它不起作用 .

RelativeLayout mainLayout = (RelativeLayout)findViewById(R.id.main_layout);
RelativeLayout.LayoutParams rlParams = new RelativeLayout.LayoutParams(ActionBar.LayoutParams.MATCH_PARENT, ActionBar.LayoutParams.WRAP_CONTENT);
rlParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, 1);
AdView mAdView = (AdView) findViewById(R.id.adView);
//AdRequest adRequest = new AdRequest.Builder().build();
//mAdView.loadAd(adRequest)
mainLayout.addView(mAdView,rlParams);
// Load the ad:
//AdRequest adRequest = new AdRequest();
AdRequest adRequest = new AdRequest.Builder().build();
mAdView.loadAd(adRequest);

扫描仪视图初始化,但它没有显示 Banner ,我如何调用相机活动并将 Banner 放在那里?你的帮助将不胜感激 . 谢谢 .

public void QrScanner(View view) {


mScannerView = new ZXingScannerView(this);   // Programmatically initialize the scanner view
setContentView(mScannerView);

mScannerView.setResultHandler(this); // Register ourselves as a handler for scan results.
mScannerView.startCamera();         // Start camera

1 回答

  • 0

    而不是使用 setContentView(mScannerView); ,你可以膨胀你自己的 FrameLayout 的xml,你已经在做 setContentView(R.layout.activity_main);

    所以添加 activity_main.xml ,添加 FrameLayout ,添加一个 LinearLayout 容器来托管扫描仪,并将另一个 LinearLayout 作为AdMob Banner 的容器 .

    通过调用 mLinearLayoutContainerForScanner.addView(mScannerView);mLinearLayoutContainerForAdMobBanner.addView(mScannerView) 在相应的 LinearLayout 运行时添加视图 .

相关问题