代码之家  ›  专栏  ›  技术社区  ›  cardaguh

在startCamera()方法(使用xzing库扫描二维码)之后,如何将AdMob横幅添加到相机活动?

  •  0
  • cardaguh  · 技术社区  · 7 年前

    我使用com包中一个名为zxing的库。谷歌。zxing。结果和我。dm7.barcodescanner。zxing。ZXingScannerView在我的新应用程序中扫描二维码,但是我无法在扫描二维码的摄像头活动的底部放置Admob横幅,我不知道如何使其出现在摄像头acvity中,因为摄像头活动似乎没有布局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
    

    我尝试使用此代码将横幅放在活动摄影机的底部,但它不起作用。

    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);
    

    扫描仪视图已初始化,但未显示横幅,如何调用相机活动并将横幅放在那里?我们将感谢您的帮助。谢谢

    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 回复  |  直到 7 年前
        1
  •  0
  •   Jay Patel    7 年前

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

    所以再加上 activity_main.xml 添加 框架布局 ,添加一个 LinearLayout 用于承载扫描仪并彼此放置的容器 线性布局 作为AdMob横幅的容器。

    在各自的视图中添加电子视图 线性布局 通过调用运行时 mLinearLayoutContainerForScanner.addView(mScannerView); mLinearLayoutContainerForAdMobBanner.addView(mScannerView) .