Android:将imageview转换为位图,转换为灰度,位图转换为imageview

2024-03-08

当我编译此代码时,我没有在 Eclipse 上收到任何警告,但是当我在设备或模拟器上运行它时,该程序被迫关闭。

public class MainActivity extends Activity {

    ImageView img;
    Button btn;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //convert imageview to bitmap
        img =(ImageView) findViewById(R.id.imageView1);
        BitmapDrawable drawable = (BitmapDrawable) img.getDrawable();
        final Bitmap imgbitmap = drawable.getBitmap();


        btn.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                //convert bitmap to grayscale 
                Bitmap imgnew;
                imgnew = toGrayscale(imgbitmap);    

                //convert bitmap to imageview 
                ImageView imgbit;
                imgbit = (ImageView) findViewById(R.id.imageView2);
                imgbit.setImageBitmap(imgnew);
            }
        });

    }

    public Bitmap toGrayscale(Bitmap bmpOriginal){        
        int width, height;
        height = bmpOriginal.getHeight();
        width = bmpOriginal.getWidth();    

        Bitmap bmpGrayscale = Bitmap.createBitmap(width, height, Bitmap.Config.RGB_565);
        Canvas c = new Canvas(bmpGrayscale);
        Paint paint = new Paint();
        ColorMatrix cm = new ColorMatrix();
        cm.setSaturation(0);
        ColorMatrixColorFilter f = new ColorMatrixColorFilter(cm);
        paint.setColorFilter(f);
        c.drawBitmap(bmpOriginal, 0, 0, paint);
        return bmpGrayscale;
    }

}

如果上面是您的完整代码,那么基本问题就在那里,您还没有定义btn。您需要在使用它之前定义它,否则当您单击该按钮时它将不起作用。这可能会关闭您的应用程序。

 btn=(Button) findViewById(R.id.button1);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android:将imageview转换为位图,转换为灰度,位图转换为imageview 的相关文章

随机推荐

  • 如何获取 Django 中 TextField 的长度?

    我知道对于常规字符串 您可以执行 x len 来获取它的长度 但 Django 模型 TextField 似乎不需要这样做 我找到并查看了模型字段参考 https docs djangoproject com en dev ref mode
  • 将 Web 服务器与数据库和 J2ME 连接

    我做了一个移动应用程序 用户可以使用它获取所需地点的号码 用户必须选择适当的城市和类别才能获取该地点的信息 所有信息都存储在数据库中 我想知道的是 1 网络服务有什么好处 2 如何连接Web服务和MySQl数据库 3 如何连接Web服务和移
  • 如何在非托管 C++ 中设置区域性信息?

    我有一个用非托管 C 编写的程序 我需要从系统获取文化信息并将该信息设置为我的 C 应用程序中的当前执行线程 Thanks 在 Windows 上的非托管 C 中 您需要的是 Locale 文化是 NET 中定义的术语 作为该术语的替代品
  • PHP会话变量从子域到主域

    我在亚马逊 Web 服务器 EC2 实例上的 ISPConfig 中设置了 2 个域 站点 我有一个名为app example com http www app example com另一个是https www example com ht
  • 在 Android 中设计国际象棋

    我通过使用表格布局中的按钮为国际象棋游戏设计了一个用户界面 对于棋子 我采用 ASCII 值并将其作为字符串值打印在按钮上 但我不知道单击按钮时如何获取该值 这是我第一次为Android 编程
  • 如何使 find() 能够处理一组结构?

    我正在使用一个set保存包含多个字符串的结构 我希望能够使用find 集的功能 但是 由于该集合保存结构 因此它不起作用 我想find 仅查看结构中的字符串之一 如何才能做到这一点 这是我尝试使用的代码 除了以下部分之外 它工作正常find
  • PHP isset($this) 并在静态和对象上下文中使用相同的对象方法

    我正在开发一个需要通过静态函数调用和对象方法访问的类 我发现的一件事是我在多个函数之间重复逻辑 简化示例 class Configurable protected configurations array protected static
  • iOS 应用程序的 Firebase 3.7.0 上的链接错误

    我尝试在我的 iOS 应用程序中使用 Firebase SDK 3 7 0 但它出现链接错误 我已按照 README md 中描述的步骤进行操作 该文件包含在从下载的框架 SDK 中https firebase google com doc
  • 渐变 IE8+ 所需的最低 CSS

    通常当我制作渐变时我使用colorzilla 渐变编辑器 http www colorzilla com gradient editor 默认情况下 它会为您生成 CSS 这是一个例子 background 1e5799 Old brows
  • ruby on Rails 如何删除文件routes.rb中的一行

    在我的文件routes rb中 namespace admin do resources albums except new edit destroy resources conversation replies except new ed
  • 有人提出了 javascript 的 Pipe 运算符吗?

    许多语言都有一个运算符 允许您将一个操作的结果通过管道传输到对另一个操作的调用中 例如 bash 中的运算符 gt F 中的运算符 在我看来 JavaScript 中方法链接的常见习惯用法的一大优点是它从上到下 从左到右读取 var foo
  • 视图更新后,旋转器动画开始弹跳

    我有一个图像 我对其应用了 360 度旋转以产生加载 旋转的效果 它工作正常 直到我在下面添加文本 图像仍然旋转 但垂直弹跳 这是查看它的代码 import SwiftUI main struct SpinnerApp App var bo
  • 安装 Kafka 作为 Windows 服务

    如何将 Apache Kafka 作为 Windows 服务安装并运行 现在我需要进入命令提示符并启动zookeeper和kafka服务器 有什么方法可以让我将 Apache Kafka 安装为 Windows 服务吗 我只看到下面的博客
  • 为什么我的 Google App Engine Mail API 调用仍然会导致 DeadlineExceededError,尽管将它们放入任务队列中?

    我有一个 Python 函数 它为我的邮件列表中的每个电子邮件地址添加一个任务队列 每次邮寄数千个 问题是 即使每封邮件都是通过任务队列中的执行发送的 我仍然遇到这个可怕的错误 DeadlineExceededError The API c
  • 正则表达式模式忽略多个文件夹

    忽略多个文件和文件夹的正确语法是怎样的电子包装机 https www npmjs com package electron packager 只有一个参数 例如 ignore docs 效果很好 但我想忽略多个文件夹和文件 例如 ignor
  • R中如何判断列表是否为空?

    本质上 我有一个创建 list 输出的函数 我希望我的函数不创建 list 而是用另一个值 例如 NULL 或字符串 替换它 有没有办法确定变量是否分配给空列表list 空列表为空 它没有元素 但仍然是一个列表 没有元素的列表的长度为 0
  • 如何解决 ClassNotFoundException?

    我正在尝试运行 Java 应用程序 但收到此错误 java lang ClassNotFoundException 冒号后面是缺少的类的位置 但是 我知道该位置不存在 因为该类位于其他地方 我怎样才能更新该类的路径 和类路径有关系吗 类路径
  • 我如何将小胡子中的变量大写

    我的小胡子模板中有一个名为 type 的变量 我想使用标题大小写将 type 的值大写 这可能吗 考虑到该类型不是网页上显示的类型 它存储一个值 type 你可以将它包裹在一个span并使用CSS CSS capitalize text t
  • 用C语言从M68k RAM地址获取特定字节

    通过 IDA 反汇编程序我到达了这个地址 0010FD74 00 00 00 00 00 00 03 00 00 00 00 00 82 03 80 02 现在我需要给定地址来获取特定字节 例如第 7 个位置有 03 我尝试过使用C语言来做
  • Android:将imageview转换为位图,转换为灰度,位图转换为imageview

    当我编译此代码时 我没有在 Eclipse 上收到任何警告 但是当我在设备或模拟器上运行它时 该程序被迫关闭 public class MainActivity extends Activity ImageView img Button b