【问题标题】:Get Drawables out of RelativeLayout or Group Drawables从 RelativeLayout 或 Group Drawables 中获取 Drawables
【发布时间】:2011-06-10 12:52:11
【问题描述】:

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

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

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>

所以我看不到任何错误(我在我的程序中以编程方式设置了可绘制对象)

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

【问题讨论】:

    标签: android layout graphics view drawable


    【解决方案1】:

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

    【讨论】:

    • 非常好。看来这正是我所需要的。我想我可以结合 LayerDrawable 和 LevelList 来摆脱我写的那个丑陋的 ImageFactory。我将其标记为已接受,一旦它起作用
    • 我在使用中遇到了一些问题。
    • 我已经定义了4个Layer-List xml并将它们放入Drawable文件夹中。如果我调用 mContext.getResources().getDrawable(R.drawable.one_drawable) 我得到一个由 java.lang.RuntimeException 引起的 java.lang.reflect.InvocationTargetException: Unable to start activity ComponentInfo{[package].MapViewActivity}: android.content.res.Resources$NotFoundException: 来自可绘制资源 ID #0x7f020003 的文件 res/drawable/one_drawable.xml 我在做什么错
    • 如果您想获得建议,我相信您应该提供一些代码示例。我也相信这个答案以前被接受过;)
    • 2) 您已经征求意见并接受了答案,如果您不确定在某些实施中,接受删除听起来不太好。您应该正确阅读文档并寻求其他建议;)
    猜你喜欢
    • 1970-01-01
    • 2018-08-14
    • 1970-01-01
    • 1970-01-01
    • 2018-12-24
    • 2021-08-02
    • 2015-11-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多