使用java代码而不是XML?

时间:2014-09-09 09:56:27

标签: java android xml

在我的应用程序中由于某种原因我不能使用XML布局现在我需要创建一个XML代码所在的布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/adlayout"
android:layout_width="match_parent"
android:layout_height="48dp"
android:orientation="vertical" >

<ir.adad.AdView
    android:id="@+id/ad"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    token="fhsfxfhdghghrgfggh" />

</LinearLayout>

现在我需要创建一个与此XML代码相同的java代码!有什么办法吗?我怎么能这样做? 我:ir.adad.adview是一个广告服务,我把它放在我的应用程序中。

2 个答案:

答案 0 :(得分:1)

这可能对你有所帮助。

LinearLayout layout = new LinearLayout(this);
    layout.setOrientation(LinearLayout.VERTICAL);
    int adlayout = 12345;   //if you need id of layout somewhere else  
                           //View.generateViewId();Can be used if minSDK= 17 
    layout.setId(adlayout);

    android.view.ViewGroup.LayoutParams params = layout.getLayoutParams();
    params.height = 48;
    params.width = LayoutParams.MATCH_PARENT;
    //Below code is used if you need height in dp.
    //int height = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, <HEIGHT>, getResources().getDisplayMetrics());

    ir.adad.AdView adView = new ir.adad.AdView(this);
    int adViewId = 123456;//Should not be dublicate.
    adView.setId(adViewId);
    android.view.ViewGroup.LayoutParams paramView = adView.getLayoutParams();
    paramView.height = LayoutParams.WRAP_CONTENT;
    paramView.width = LayoutParams.WRAP_CONTENT;

    layout.addView(adView)

答案 1 :(得分:0)

由于我不知道广告服务库,我无法帮助您完成构造函数和创建,但这应该可以帮助您开始工作。

    LinearLayout layout = new LinearLayout(this);
    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,48);
    layout.setOrientation(LinearLayout.VERTICAL);
    layout.setLayoutParams(params);
    ir.adad.AdView adview = new ir.adad.AdView();
    LinearLayout.LayoutParams adviewParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT);
    adview.setLayoutParams(params);
    adview.setToken("asdasdas");
    layout.addView(adview);