从RelativeLayout或Group Drawable中获取Drawables

时间:2011-06-10 12:52:12

标签: android layout graphics view drawable

我想做的是如下: 我有一组Drawables(例如16),我必须以不同的方式组合(带有1,2,3或4个Drawables的图标),具体取决于商业逻辑。我的想法是用里面的ImageViews定义RelativeLayouts。不幸的是,我计划将这些Layouts作为OverlayItem(需要Drawable)来在MapView上显示它们。我认为任何布局都是Drawable,但事实并非如此。我找不到将这个RelativeLayout转换为drawable的方法。我真的没有得到主要的区别。是不是可以抽取任何VIEW? 我可以将多个Drawable组合成一个吗?我真的是2D图形的初学者,并且不知道如何解决这个问题。任何想法赞赏

ADD: 基于第一个答案的代码示例:

public class MapViewActivity extends MapActivity {

MapView mMapView;

@Override
public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.map_view);

    mMapView = (MapView)findViewById(R.id.mapview);
    mMapView.setBuiltInZoomControls(true);

    List<Overlay> mapOverlays = mMapView.getOverlays();
    Drawable drawable = this.getResources().getDrawable(R.drawable.one_drawable);
    //this is where exception is thrown
    }
}

,文件one_drawable.xml如下所示:

<?xml version="1.0" encoding="utf-8"?>
<layer-list
  xmlns:android="http://schemas.android.com/apk/res/android">
  <item 
      android:id="@+id/item_one"
      android:top="0dip"
      android:right="0dip"
      android:bottom="0dip"
      android:left="0dip"/>
</layer-list>

所以我看不出任何错误(我在程序中以编程方式设置了drawables)

编辑2: 好的,我不被允许这样做。我必须设置一个drawable,可以在以后交换

1 个答案:

答案 0 :(得分:1)

尽管可以绘制任何视图,但它不是一个可绘制的。您应该使用Layer List 将多张图片作为一个图片进行操作。