1

プログラムで作成された ImageView があります。imageView 全体をドローアブルとして取得したい。次のようにすると、 null が返されます

private Drawable getDrawable(Data data) {
    ImageView image = new ImageView(context);
    image.setBackground(data.getColor());
    image.setImageDrawable(data.getIcon());
    return image.getDrawable();
}

また、私のメソッドは imageView の描画可能な部分のみを返し、背景はないと思われます。

ImageView 全体をドローアブルとして取得するにはどうすればよいですか?

アップデート:

以下はまだ機能しません。

private Drawable getDrawable(Data data) {
    ImageView image = new ImageView(context);
    image.setBackground(data.getColor());
    image.setImageDrawable(data.getIcon());
    image.setDrawingCacheEnabled(true);
    image.buildDrawingCache();
    Drawable drawable = new BitmapDrawable(context.getResources(), image.getDrawingCache());
    image.setDrawingCacheEnabled(false);
    return drawable;
}
4

2 に答える 2

1

これが機能すると確信していますが、自分でテストしていません。を使用して、がレンダリングされるもののimage.getDrawingCache()を取得してみてください。を使用して、描画キャッシュを有効にする必要がある場合があります。そこから、 a を使用して を型に変換できます。ドロー キャッシュに関するAndroid ドキュメントからの情報を次に示します。そして、ここにいくつかの情報があります。BitmapViewimage.setDrawingCacheEnabled(true)BitmapDrawableBitmapDrawableBitmapDrawable

于 2013-08-16T17:57:37.523 に答える