设置android片段的图像背景

时间:2013-06-16 23:03:38

标签: android

我正在使用带有以下xml的DrawerLayout:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:orientation="horizontal" >
  <android.opengl.GLSurfaceView android:id="@+id/glsurfaceview"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />
  <FrameLayout
    android:id="@+id/detail_container"
    android:layout_width="240dp"
    android:layout_height="match_parent"
    android:layout_gravity="end" >
  </FrameLayout>
  <View
    android:layout_width="140dp"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:background="#0000ff" />
</android.support.v4.widget.DrawerLayout>

我的想法是我的主视图是Opengl和两侧的抽屉。 “detail_container”以编程方式填充以下onCreate()(在Scala中)中的片段:

override def onCreate(bundle: Bundle) {
    super.onCreate(bundle)
    setContentView(R.layout.main)//important: this is how you specify the xml file that defines the layout for this activity

    def setupActionBar(){
      val bar = getActionBar
      bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS)
      bar.setDisplayOptions(0, ActionBar.DISPLAY_SHOW_TITLE)
      val mapTab = bar.newTab().setText("Map")
      val detailTab = bar.newTab().setText("Detail")
      mapTab.setTabListener(new MyTabsListener)
      detailTab.setTabListener(new MyTabsListener)
      bar.addTab(mapTab)
      bar.addTab(detailTab)
      bar.show()
    }

    def setupOglRenderer(){
      findViewById(R.id.glsurfaceview) match {
        case v: GLSurfaceView => {
          val renderer = new OpenGlRenderer(this, R.drawable.aqua_oval)
          v.setRenderer(renderer)
        }
        case _ =>
      }
    }

    def setupDetailFragment(){
      if(findViewById(R.id.detail_container) != null){
        if(bundle == null){//don't do anything if restoring
          val detailFrag = new DetailFrag
          detailFrag.setArguments(getIntent.getExtras)
          getSupportFragmentManager.beginTransaction().add(R.id.detail_container, detailFrag).commit()
        }
      }
    }

    setupActionBar()
    setupOglRenderer()
    setupDetailFragment()
  }

详细信息片段类具有以下onCreateView:

override def onCreateView(inflater: LayoutInflater, container: ViewGroup, savedInstanceState: Bundle): View = {
  val v = inflater.inflate(R.layout.detail_fragment, container, false)
  v.setBackgroundColor(0x557B68EE)
  //v.setBackgroundResource(R.drawable.aqua_sqaure)
  v.getBackground().setColorFilter(Color.parseColor("#00ff00"), PorterDuff.Mode.DARKEN)

  v
}

这一切都很好,但是如果我尝试将九个补丁设置为背景,我的UI组件就不会显示。我试图在onCreateView和detail_container的xml中设置背景drawable:

android:background="@drawable/aqua_sqaure"

在这两种情况下,我只能看到背景图像。如果我删除背景,我可以看到我的UI组件。我可以很好地设置背景颜色,只有图像可以隐藏或覆盖UI。

我做错了什么?

非常感谢任何帮助。感谢

更新:这似乎与我正在使用的九个补丁有关。使用其他九个补丁图像时,代码的行为与预期一致。

0 个答案:

没有答案