android - 从布局中获取位图

标签 android

我正在尝试扩充布局并使用它在 ImageView 上设置位图。然后,我将该 ImageView 添加到线性布局并显示线性布局。这是我尝试过的:

public class TestActivity extends Activity {
    private static Bitmap bitMap;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        LinearLayout l = new LinearLayout(this);

        bitMap = Bitmap.createBitmap(getWindowManager().getDefaultDisplay().getWidth(), 
                getWindowManager().getDefaultDisplay().getHeight(), 
                Bitmap.Config.ARGB_8888);
        Canvas canvas = new Canvas(bitMap);
        LayoutInflater inflater = LayoutInflater.from(this);
        View v1 = inflater.inflate(R.layout.main, null);
        v1.layout(0, 0, getWindowManager().getDefaultDisplay().getWidth(), 
                getWindowManager().getDefaultDisplay().getHeight());
        v1.draw(canvas);

        ImageView i1 = new ImageView(this);
        i1.setImageBitmap(bitMap);
        i1.setAdjustViewBounds(true);
        i1.setLayoutParams(new FrameLayout.LayoutParams(getWindowManager().getDefaultDisplay().getWidth(), 
                getWindowManager().getDefaultDisplay().getHeight()));

        l.addView(i1);
        setContentView(l);
    }
}

不幸的是,没有正确创建位图。我做错了什么吗?

最佳答案

将布局转换为位图。

FrameLayout view = (FrameLayout)findViewById(R.id.framelayout);
view.setDrawingCacheEnabled(true);
view.buildDrawingCache();
Bitmap bm = view.getDrawingCache();

关于android - 从布局中获取位图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8119930/

相关文章:

android - 使用 Facebook SDK 仅共享文本

android - 使用货币转换器应用程序自动获取当前货币汇率?

java - 如何在不卡住我的应用程序的情况下运行循环?

php - 如何让 API PHP 检查该值是否存在于另一个表中然后插入?

android - 使用广播接收器作为具有 list 注册的 Activity 内部类

android - 如何在抽屉导航顶部创建工具栏(Android/kotlin)

android - 如何在Android中获取PDF的当前页码

android - 如果没有 @Inject 构造函数或 @Provides-annotated 方法,则无法提供 java.lang.String

android - 如何查看 Android 智能手机设备的发布日期?

android - libgdx 中的背景透明度