将列表视图项转换为单个位图图像

2024-05-02

参考这个主题:Android 获取所有 ListView 项目的屏幕截图 https://stackoverflow.com/questions/12742343/android-get-screenshot-of-all-listview-items

我想做类似的事情,但我有自定义适配器,它在这段代码中抛出 NullPointerException 错误:

childView.measure(MeasureSpec.makeMeasureSpec(_listView.getWidth(),    MeasureSpec.EXACTLY),MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));

我的自定义适配器:

public class InvoiceListAdapter extends BaseAdapter {

  ArrayList<Object> _itemList;
  public Activity _context;
  public LayoutInflater _inflater;
  BarCodeGenerator Generator = new BarCodeGenerator();


  public InvoiceListAdapter(Activity context,ArrayList<Object> itemList)
  {
      super();
      this._context=context;
      this._itemList=itemList;
      this._inflater=(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

  }
@Override
public int getCount() {
    // TODO Auto-generated method stub
    return _itemList.size();
}

@Override
public Object getItem(int position) {
    // TODO Auto-generated method stub
    return _itemList.get(position);
}

@Override
public long getItemId(int position) {
    // TODO Auto-generated method stub
    return 0;
}

public static class ViewHolder
{
 TextView ProductName;
 TextView Qnt;
 ImageView Barcode;
 TextView BarcodeFormat;
 Button Del;

}



@Override
public View getView(final int position, View convertView, ViewGroup parent) {

    ViewHolder holder;
     if(convertView==null)
        {
            holder = new ViewHolder();
            convertView = _inflater.inflate(R.layout.custom_row_view, null);


            holder.ProductName = (TextView) convertView.findViewById(R.id.txt_CRow_ProdName);
            holder.Qnt = (TextView) convertView.findViewById(R.id.txt_CRow_Qnt);
            holder.Del = (Button) convertView.findViewById(R.id.btn_CRow_Delete);
            holder.Barcode = (ImageView) convertView.findViewById(R.id.Img_CRow_Barcode);
            /*-----------------------------Deleting Item with Button--------------------*/
            holder.Del.setTag(holder);


            convertView.setTag(holder);
        }
        else
        {
            holder=(ViewHolder)convertView.getTag();
        }

        AnItem Item = (AnItem) _itemList.get(position);

        holder.ProductName.setText(Item.getProductName());
        holder.Qnt.setText(Item.getQnt());
        holder.Barcode.setImageBitmap(Generator.Generate(Item.getProductName(), BarcodeFormat.valueOf(Item.getBarcode() ),500,200 ) ); 

        holder.Del.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(_context,"Item Deleted!: "+position, Toast.LENGTH_SHORT).show();

                _itemList.remove(position);  
                notifyDataSetChanged();

                // TODO Auto-generated method stub

            }
        });

        return convertView;


}

}

我的自定义行:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:orientation="vertical">

<TextView
android:id="@+id/txt_CRow_ProdName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="@string/ProductName"
android:textSize="16sp"
android:textStyle="bold" />

<Button
android:id="@+id/btn_CRow_Delete"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:focusable="false"
android:text="@string/Delete"
android:textSize="12sp"/>

<TextView
android:id="@+id/txt_CRow_Qnt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/Img_CRow_Barcode"
android:hint="@string/Qnt"
android:textSize="12sp"
android:textStyle="bold" />

<ImageView
android:id="@+id/Img_CRow_Barcode"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/txt_CRow_ProdName"
android:layout_centerVertical="true"
android:layout_toLeftOf="@+id/btn_CRow_Delete"
android:layout_alignParentLeft="true"
 />

</RelativeLayout>

感谢您的帮助。


您可以从任何视图获取位图,如下所示:

public static Bitmap getBitmapFromView(View view) {
    Bitmap returnedBitmap = Bitmap.createBitmap(view.getWidth(), view.getHeight(), Bitmap.Config.ARGB_8888);
    Canvas canvas = new Canvas(returnedBitmap);
    Drawable bgDrawable = view.getBackground();
    if (bgDrawable != null)
        bgDrawable.draw(canvas);
    else
        canvas.drawColor(Color.WHITE);
    view.draw(canvas);
    return returnedBitmap;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将列表视图项转换为单个位图图像 的相关文章

  • 主题以编程方式设置。如何重新加载 Activity 来应用

    如何在不重新启动整个应用程序的情况下应用主题 如果我这样做startActivity getIntent finish 活动退出并且不重新启动 是否可以简单地重新启动 重新创建活动来应用主题 它的顺序不正确 finish intent ne
  • Android 布局不需要的填充

    所以我有这个布局文件 如下 正如您所看到的 没有填充或边距 dimen xml 文件也没有任何填充 边距 最后 我根本不以编程方式更改布局
  • “此版本中使用了已弃用的 Gradle 功能,使其与 Gradle 7.0 不兼容。” -反应-原生

    当我尝试运行反应本机应用程序时 我遇到此错误react native run android 我无法安装该应用程序 我正在尝试构建一个相机应用程序 我当前的react native版本 0 62 0 React cli版本 2 0 1 De
  • Android STFP 库 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想在我的 Android 项目中使用 SFTP 安卓已经有了吗 SFTP 库 还是我必须实现它 I
  • 如何使用gradle这样的格式更改apk名称?

    当我使用 gradle 构建应用程序时 我想将 app release apk 文件名更改为如下所示 format appname of package name V version code yyMMdd R T explain appn
  • 居中复选框视图

    如果除了 或代替 复选框之外 您还对单选按钮感兴趣 请参阅this https stackoverflow com questions 16701806 centering views 2而是提问 尽管存在
  • IntentService、Service 或 AsyncTask

    实现这一点的最佳方法是什么 我有一个 Android 应用程序 它将使用我的 python 服务器来允许两部手机之间进行轮流通信 回合意味着他们在一轮开始之前不能互相交谈 一旦他们发送一条消息 他们就不能发送另一条消息 直到对方做出回应 然
  • 在Android内存中存储gif图像

    我对安卓还很陌生 我想将图像保存到内存中 然后从内存中检索图像并将其加载到图像视图中 我已使用以下代码成功将图像存储在内存中 void saveImage String fileName img cnt jpg File file new
  • NumberPicker 的格式化值在单击时消失

    我的 NumberPicker 在setDescendantFocusability FOCUS BLOCK DESCENDANTS 模式和setWrapSelectorWheel false 已关闭 我用一个简单的格式化程序格式化了我的
  • Android中如何将文件写入raw文件夹?

    我认为这是一个非常基本的问题 我目前正在编写这样的文件 File output new File exampleout mid 现在 我想将文件写入 myproject res raw 我读到我可以通过将完整的网址放在 中来做到这一点 但
  • Android-全屏视频视图

    我正在尝试使此 VideoView 以全屏模式显示 public class ViewVideo extends Activity private String filename private static final int INSER
  • Android/Java 创建辅助类来创建图表

    Goal 创建用于图形生成的辅助类 背景 我有 3 个片段 每个片段收集一些传感器数据 加速度计 陀螺仪 旋转 并使用 GraphView 绘制图表 以下是其中一个片段的代码 该代码当前工作正常 public class Gyroscope
  • Android Studio:Android 设备监视器未显示我的设备

    我的真实设备是索尼 Xperia c6502安卓版本4 3 我确定我将其连接到我的计算机然后打开开发者选项 USB调试 on 在 SDK 管理器中 Google USB 驱动程序已安装 I downloaded Xperia Z Drive
  • 如何在我的 Android 应用程序中实现应用内购买?

    如何在我的 Android 应用程序中实现应用内购买 我提到 http developer android com guide market billing billing integrate html billing service ht
  • Android 性能:SharedPreferences 的成本

    当我的应用程序启动时 我使用分片首选项中的值填充容器类 这个想法是处理 SharedPreferences 和 PreferenceManager 一次 因为我猜它们很重 这是一个示例 SharedPreferences prefs Pre
  • 以编程方式应用样式资源

    我没有找到一种以编程方式做到这一点的方法 所以我在这里发布这个问题 我也没有找到与此相关的任何问题 我有一个资源样式 在 res values styles xml 中定义 我想做的是使用 java 将这种样式应用到我正在操作的 View
  • popupBackground 与 Material Design 相关的问题

    我一直致力于将我的应用程序更新为 Material Design 我有一个使用选项卡的应用程序 由于某种原因 每当我使用 android popupBackground 设置下拉菜单颜色时 它就会崩溃 我设置了一个带有选项卡的默认项目并使用
  • 如何从webkit浏览器中检测Android版本和品牌?

    如何通过webkit浏览器检测Android版本和品牌 可靠吗 我相信你可以检查用户代理 但是 我认为它不安全 因为有很多方法可以用来欺骗用户代理 在谷歌上搜索这个问题给了我们很多答案 它甚至可以在默认浏览器上运行 您只需输入 about
  • 在 Android ADT Eclipse 插件中滚动布局编辑器

    有谁知道当布局编辑器的内容溢出一个 屏幕 时如何滚动这些内容 我说的是在设计时使用 ADT 布局编辑器 而不是在物理设备上运行时滚动 效果很好 关闭 Android 布局编辑器中的剪辑 切换剪辑 按钮位于 Android 布局编辑器的右上角
  • 我可以通过在 Android Activity 中声明适当的成员“静态”来提高效率吗

    如果一个 Activity 在实践中是单例 我认为我可以通过声明适当的成员 静态 来获得一些效率 且风险为零 是的 The Android 文档说 http developer android com guide topics fundam

随机推荐

  • 为什么使用散列而不是点来选择 Scala 类型成员?

    在 Scala 中 从类中选择类型的语法与从类中选择其他任何内容的语法不同 因为前者使用散列而不是点作为选择运算符 这是为什么 示例 如果我们有这样的课程 class Example type Foo String 为什么我们要从这样的类中
  • 在 Django 1.9 中使用信号

    在 Django 1 8 中 我能够使用信号执行以下操作 一切顺利 init py from signals import 信号 py receiver pre save sender Comment def process hashtag
  • 如何为特定存储库配置 AWS CodeCommit 配置文件

    我有以下问题 作为我工作的一部分 我处理多个 AWS 账户 每个账户都有一个单独的 AWS CodeCommit 存储库和特定于账户的 IAM 用户 这会导致不同的用户 ID 我想找到一种方法来配置我的 ssh 以根据存储库访问不同的帐户
  • 有没有办法在Python中调用子类定义的方法?

    The init 方法定义了创建类的实例时要执行的操作 创建子类时我可以做类似的事情吗 假设我有抽象类Entity class Entity def onsubclasscreation cls for var in cls annotat
  • 杰克逊:引用同一个对象

    在某些情况下 主体 例如 JSON 主体 中序列化或非序列化的数据包含对同一对象的引用 例如 包含球员列表以及由这些球员组成的球队列表的 JSON 正文 players name Player 1 name Player 2 name Pl
  • 在Android中获取Fragment中的应用程序上下文?

    我已通过在一个活动中使用应用程序上下文将一些数据存储到全局类中 稍后我必须在片段中检索这些值 我已经做了类似的事情来存储在全局类中 AndroidGlobalClass AGC AndroidGlobalClass getApplicati
  • 如何转换温度传感器得到的值?

    我在ST工作Temperature sensor hts221 我用I2C与传感器的命令通信 我从文档中看到类似以下文字 enter code here Temperature data are expressed as TEMP OUT
  • WPF 向我的 GUI 添加时钟

    简单请求 我希望能够在 WPF 应用程序窗口中显示当前时间 有免费的控件吗 只需要显示时间 没有别的 您可以有一个标签或文本块 并将其内容绑定到 System DateTime Now
  • Hibernate 验证器:违规消息语言

    我有一个测试类 我正在测试一个域模型 该模型用例如注释 NotNull 在我的测试课中 我首先得到验证器 private static Validator validator BeforeClass public static void s
  • Ember.js 动态子视图

    我无法让 ember 渲染动态子视图 似乎一旦渲染了子视图 绑定就会丢失 这是一个jsfiddle http jsfiddle net zaius XYzfa http jsfiddle net zaius XYzfa 当您在两个编辑器页面
  • CSS:悬停在多个 div 上时显示样式

    我有 2 个不同尺寸的 div 一个放在另一个上面 所以有一个共同的交叉区域 这两个 div 都有 CSS hover 规则集 如果我将鼠标悬停在每个 div 上 则规则适用 但是 如果我移过交叉区域 则只会激活顶部 div 悬停 当鼠标悬
  • 如何找到给定数组的所有可能的子集?

    我想在 C 或 C 中提取数组的所有可能子集 然后计算所有子集数组各自元素的总和 以检查其中有多少等于给定数字 我正在寻找的是算法 我确实理解这里的逻辑 但我现在还无法实现这一逻辑 考虑一组S of N元素 以及给定的子集 每个元素要么属于
  • 使用 pymongo 查询空字段

    我想使用 python 查询 mongo 中的空字段 但是它很难处理单词 null 或 false 它要么给我错误 它们在 python 中未定义 要么在 mongo 中搜索字符串 null 和 false 这两种情况我都不希望发生 col
  • Cloudflare Worker 缓存 API 出现问题

    我现在花了无数的时间尝试让缓存 API 来缓存一个简单的请求 我让它在中间工作过一次 但忘记向缓存键添加一些内容 现在它不再工作了 不用说 cache put 没有指定请求是否实际被缓存的返回值并不完全有帮助 我只能进行反复试验 有人可以给
  • 如何解决警告“没有明确的所有权”

    我有一种方法 它采用间接指针作为参数 然后 如果出现错误 将其设置为错误对象 我正在尝试打开尽可能多的警告 但其中之一 Implicit ownership types on out parameters 在此方法中生成警告 id doWi
  • asp.net 3.5 是否支持单个页面上的多个表单?

    我只是想确认这是否属实 我记得在某处读到现在这是可能的 但经过一个小时的谷歌搜索后我找不到任何明确的证据 在 ASP NET WebForms 中 您不能使用多个表单 因为它使用单个表单模型 在 ASP NET MVC 中您可以
  • 如何将2个匹配查询加入到elasticsearch的查询中?

    我想查询以下数据user id is 1 and name is John 写一个常用的SQL很容易 select from t where user id 1 and name John 但对我来说进行elasticsearch的查询并不
  • 从 Azure 流分析将数据插入 Azure SQL 数据库表时出现“OutputDataConversionError.TypeConversionError”

    我正在尝试学习 Azure IoT 我正在尝试将 MQTT 消息发送到 IoT 中心 在 IoT 中心 我使用流分析将数据输出到 SQL 数据库中 但目前在流分析输出中 我遇到此错误 9 12 30 AM 源 OUTPUTSQL 在处理时间
  • 如何设置按钮的大小?

    我将按钮放在带有 GridLayout 的 JPane 中 然后我用 BoxLayout Y AXIS 将 JPanel 放入另一个 JPanel 中 我希望 GridLayout 中的按钮是方形的 我使用 tmp setSize 30 3
  • 将列表视图项转换为单个位图图像

    参考这个主题 Android 获取所有 ListView 项目的屏幕截图 https stackoverflow com questions 12742343 android get screenshot of all listview i