android - 如何使此方法通用?将 RelativeLayout 转换为位图图像

标签 android generics android-layout bitmap converter

我写了一个方法来将任何布局 Liner、Relative、Frame 等转换为位图,但我想使这个方法通用,以便它接受 android.view.ViewGroup 作为参数而不是特定的RelativeLinearLayout

下面是我的方法:

public Bitmap getBitmapFromView(RelativeLayout v) {
        v.setLayoutParams(new LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT));
        v.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED), MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
        v.layout(0, 0, v.getMeasuredWidth(), v.getMeasuredHeight());
        Bitmap b = Bitmap.createBitmap(v.getMeasuredWidth(), v.getMeasuredHeight(), Bitmap.Config.ARGB_8888);

        Canvas c = new Canvas(b);
        v.draw(c);
        return b;
    }

最佳答案

这两个 Layout 都继承自 ViewGroup,因此您可以使用 ViewGroup 作为方法参数,所有这些语句都可以正常工作。

此外,您应该使用 ViewGroup.LayoutParams 而不是 RelativeLayout.LayoutParams 以使其通用。

关于android - 如何使此方法通用?将 RelativeLayout 转换为位图图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11096680/

相关文章:

Android添加css文件

android - 从对话框 fragment 返回一些东西

android - 在层演示器 MVP 上使用资源 "R.String"中的字符串

c# - 如何枚举实现通用接口(interface)的所有项?

android - 工具栏不从内部折叠工具栏显示

java - Httpsurlconnection 不关闭套接字

c++ - 为什么我们需要类型名称依赖于 C++ 中的模板参数

.net - IQueryable IGrouping如何工作

java - EditText 按需小部件

android - 如何创建旋转的自定义加载图像?