Android:在运行时更改矩形的颜色

2024-01-02

我有一个LinearLayout我有一个自定义视图:

public class myView extends View  
{
    Rect rects = new Rect(30,30,80,80); 
    Canvas myCanvas;
    @Override
    public void onDraw(Canvas canvas)     
    {
         myCanvas = canvas;
         paint.setColor(Color.RED);
         canvas.drawRect(rects, paint);

    }
    void changeColor()
    {
        paint.setColor(Color.BLUE);
        myCanvas.drawRect(rects, paint);
        myCanvas.invalidate();
    }
}

在 MainActivity 我有:

LinearLayout lv = (LinearLayout) View.inflate(this, R.layout.activity_main, null);
drawView = new myView(this);
lv.addView(drawView); 
setContentView(lv);
Button button3 = (Button) findViewById(R.id.button3);
button3.setOnClickListener(new View.OnClickListener()
{
        @Override
        public void onClick(View v) {
            drawView.changeColor();
        }  
});

单击按钮后,我想通过调用changeColor 来更改矩形的颜色。但是在其他地方创建了新的矩形!你能帮我么?


您正在呼叫drawRect两次(在使视图无效之前,以及在onDraw)。此外,无需存储对Canvas.


将所需的颜色保留在变量中,更改它并使视图无效。-

public class myView extends View {

    private Color color = Color.RED;

    Rect rects = new Rect(30,30,80,80); 

    @Override
    public void onDraw(Canvas canvas) {
         paint.setColor(color);
         canvas.drawRect(rects, paint);
    }

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

Android:在运行时更改矩形的颜色 的相关文章

  • 在 Android 上通话结束时启动活动

    我想在通话结束时启动一项活动 找不到任何对此的参考 我该怎么做 我还没有尝试过这个 但我假设你可以运行一些服务 始终在后台运行 它利用电话状态监听器 http developer android com reference android
  • 如何从 SDK 实现每个会话的 Google Places 自动完成功能?

    是否可以从 Android 和 iOS 应用程序的 place sdk 实现基于会话的自动完成 根据 6 月 11 日生效的新 Google 地图框架定价 对自动完成的请求可以分为基于击键 会话的请求 我找不到描述实施步骤的文档 除了这个参
  • Xamarin Android Webview Javascript

    我正在尝试通过 Xamarin for Android 创建一个移动应用程序 它有一个显示网站的 WebView 问题是正常按钮会触发 但 javascript 事件不会触发 我已经启用了 Javascript 但没有运气 如何在 Andr
  • 确定最接近的已知颜色

    我允许我的应用程序的用户选择自定义颜色 并希望有一种方法来显示每种颜色的友好名称 而不是显示十六进制代码的文本表示形式 我如何找到最近的System Drawing Color对于给定的十六进制代码 希望这对某人有帮助 Public Fun
  • 如何正确释放Android MediaPlayer

    我正在尝试向我的 Android 应用程序添加一个按钮 当点击该按钮时它会播放 MP3 我已经让它工作了 但没有办法释放 mediaPlayer 对象 因此即使在我离开活动后它仍然会继续播放 如果我在react 方法之外初始化MediaPl
  • Android 初学者:Android gridview 中的触摸事件

    我正在使用以下代码来使用 gridview 执行操作 稍作修改http developer android com resources tutorials views hello gridview html http developer a
  • 当它的父级是 ConstraintLayout 时设计 CardView 吗?

    我在编辑包含Relativelayout的Cardview内的RelativeLayout时搞砸了 ConstraintLayout会将相对布局的wrap content更改为0并添加工具 layout editor absoluteX 1
  • Android:后台Activity可以执行代码吗?

    后台的活动是否被视为 正在运行 并且可以执行代码 还是处于挂起状态 他们暂停了 活动生命周期 http developer android com reference android app Activity html ActivityLi
  • 当 OnFocusChangeListener 应用于包装的 EditText 时,TextInputLayout 没有动画

    不能比标题说得更清楚了 我有一个由文本输入布局包裹的 EditText 我试图在 EditText 失去焦点时触发一个事件 但是 一旦应用了事件侦听器 TextInputLayout 就不再对文本进行动画处理 它只是位于 editText
  • 使用片段时应用程序崩溃

    我正在处理碎片和 我的代码中有一个我找不到的问题 logcat 指向我的一个片段中的这段代码 Override public View onCreateView LayoutInflater inflater ViewGroup conta
  • Android 中如何通过彩信发送图片?

    我正在开发多媒体应用程序 我正在通过相机捕获一张图像 并希望将该图像和文本发送到其他号码 但我不知道如何通过彩信发送图像 MMS 只是一个 http post 请求 您应该使用执行请求额外的网络功能 final ConnectivityMa
  • 使用 AsyncTask 传递值

    我一直在努力解决这个问题 但我已经到了不知道该怎么办的地步 我想做的是使用一个类下载文件并将其解析为字符串 然后将该字符串发送到另一个类来解析 JSON 内容 所有部件都可以单独工作 并且我已经单独测试了所有部件 我只是不知道如何将值发送到
  • Android 2.3 模拟器在更新位置时崩溃

    我正在使用 Eclipse 编写和调试 Android 应用程序 我需要做的事情之一是更新设备的位置 因此我尝试使用模拟器控制窗口中的位置控制面板 在 手动 选项卡上 我选择 十进制 输入有效的纬度和经度 然后单击 发送 不幸的是 接下来发
  • 在 Samsung Galaxy S5 Android 5.0 上使用 MediaPlayer 加载音频流需要超过 10 秒

    由于更新至 Android 5 0 MediaPlayer 在 Samsung Galaxy S5 上无法正常工作 启动音频流后加载时间超过 10 秒 示例代码 MediaPlayer mPlayer new MediaPlayer Str
  • 在命令行上卸载 Android SDK 的选定部分

    这与 卸载旧的 Android SDK 版本 https stackoverflow com questions 15182377 uninstall old android sdk versions 除非我想在无头 Linux CI 服务
  • 通过系统应用程序以编程方式静默安装 apk(无需 root)

    我有带有 android sharedUserId android uid system UID 1000 的系统级应用程序 设备未root INSTALL PACKAGES 权限包含在清单中 我可以静默安装下载的 apk 吗 我已经发现这
  • 在 Android 应用程序资源中使用 JSON 文件

    假设我的应用程序的原始资源文件夹中有一个包含 JSON 内容的文件 我如何将其读入应用程序 以便我可以解析 JSON See 开放原始资源 http developer android com reference android conte
  • 如何使用 AccessibilityService 在 Android 中模拟按键

    我正在编写一个辅助服务 我一直在尝试在应用程序上进行一些自动搜索 我使用accessibilityservice action paste来填充EditText 然后我需要模拟软键盘上的按键 但我不知道如何做 你们能帮我一下吗 你可以尝试A
  • 发布的 Android apk 出现错误“包文件未正确签名”

    我最近将我的应用程序上传到 Android 市场 但是由于错误 下载时它拒绝运行 包文件未正确签名 我首先使用 eclipse 发布了数据包 右键单击导出 创建密钥库然后发布 但它拒绝工作 然后我下载了 keytool 和 jarsigne
  • Android 屏幕方向错误

    我使用的是 Android HTC HERO 2 1 版本 我写的活动

随机推荐

  • 用动画填充颜色 SVG 路径

    我使用以下方法来填充 SVG 路径的颜色 有没有办法给它添加动画 从中心开始填充颜色并展开 function btn test1 on click function path1 attr fill 0000 这个答案提供了四种不同的选择使用
  • 在 Maven 存储库中找不到项目

    我有一个带有子模块的 Maven 模块 父级的相关部分是这样的
  • T-SQL 函数获取存储字符的 ASCII 值

    我正在使用 T SQL 块来获取存储在数据库列中的 ascii 字符转储 我知道在 Oracle 中使用 DUMP 函数可以轻松完成此操作 我不熟悉 SQL Server sytax 但我正在使用类似的东西 SET NOCOUNT ON C
  • 来自柏林噪声的每顶点法线?

    我正在 Opengl 几何着色器中生成地形 但在计算照明法线时遇到问题 我使用几何着色器中实现的柏林噪声函数动态生成每帧地形 因为这 我需要一种有效的方法来计算每个顶点的法线基于噪声函数 没有纹理或任何东西 我可以采用 2 条边的叉积来获取
  • 与简单的用户 ID 检查相比,声明/角色/策略授权的技术优势是什么?

    我使用 Identity Server 并通过策略和角色保护端点 这些反映在我分发给客户端的访问令牌中 今天 我收到建议 不要保护这样的方法 Authorize Policy Elevated HttpGet metadata public
  • CUDA 中的嵌套内核

    CUDA 目前不允许嵌套内核 具体来说 我有以下问题 我有N个M维数据 为了处理 N 个数据点中的每一个 需要按顺序运行三个内核 由于不允许嵌套内核 因此我无法创建调用三个内核的内核 因此 我必须串行处理每个数据点 一种解决方案是编写一个包
  • C++ 中短路 `operator<<` 输出

    我有一些代码散布着这样的结构 if debug Output lt lt f1 lt lt f1 lt lt n 现在我想做的是编写一个流类Debug我可以这样写 Debug lt lt f1 lt lt f1 lt lt n 如果设置了某
  • 简单的 TextView.setText 导致 40% CPU 使用率

    运行我的应用程序会导致我的手机 CPU 使用率达到约 40 final String position String format 02d 02d 02d time getHours time getMinutes time getSeco
  • Excel VBA 中的定时警报

    我在 Excel 2003 中制作了一个日历来跟踪任务和类似项目 我需要做的是通过 VBA 设置计时器 像这样的事情 run in x secs timetowait function to exec 有没有办法在 excel vba 中做
  • 如何用字符串替换缩写?

    我正在创建一个 XSL 文件 该文件将从 XML 文件中提取有关在我所在区域被拖走的汽车的信息 并按汽车被拖走的日期按升序对其进行排序 我需要在转换后的文件中显示拖车日期 车牌和汽车颜色 我的问题是每辆车的颜色都有缩写 我想要颜色的全名而不
  • 在NancyFx中获取url参数

    我正在使用 NancyFx 构建 Web API 但从 URL 获取参数时遇到一些问题 我需要向 API 发送请求 consumptions hourly from 1402012800000 tags 171 1342 5D to 140
  • 多个卷到单个目标目录?

    有没有办法从主机挂载多个卷以形成单个目标挂载点 有点像这样 docker run name ubuntu bash rm interactive tty volume media Large videos videos volume med
  • 将 GIT 与在多个位置具有目录的项目一起使用

    我正在尝试将 PHP MySQL Web 应用程序 基于 CodeIgniter 2 01 框架构建 移动到 GIT 存储库 问题是为了增加安全性 我实施了分离应用程序部分 应用程序和系统文件夹 和 Web 文件 index php 图像
  • 使用非虚拟析构函数扩展基类是否危险?

    在下面的代码中 class A class B public A class C public A int x int main int argc char argv A b new B A c new C in both cases on
  • Log4j2/JPA/Hibernate 日志记录不起作用

    我无法使用 log4j2 生成休眠日志消息 它仅记录信息和警告 另一方面 HikariCP 与此配置完美配合 这是 pom xml
  • vim 中的自适应 Tab 键

    我碰巧处理的代码中 某些模块使用制表符进行缩进 而其他模块则使用空格 许多文本编辑器 例如 Np 具有某种自适应制表符功能 如果前一行 或代码块 使用空格或制表符 视情况而定 则使用空格进行缩进 我还没有在 vim 中看到过这样的东西 有没
  • 如何在 MariaDB 容器中运行 cron?

    我想在 MariaDB 容器中包含一个基于最新映像的 cron 任务mariadb 但我坚持这个 我尝试了很多方法但没有成功 因为我无法同时启动 MariaDB 和 Cron 这是我实际的 dockerfile FROM mariadb 1
  • 在 Backbone 视图渲染上动态设置 className

    我有一个 Backbone 视图 其中 className 使用函数动态设置 app Views ItemRequestView Backbone View extend tagName tr className function var
  • 如何在React Native中从heic格式获取jpg图像

    我从图库中挑选照片并上传到服务器 但几天后我注意到有些照片的扩展名为 heic 并且浏览器无法渲染这些图像 1 有没有办法从上传的heic中提取照片 2 如何在React Native中从这种格式获取jpeg 您可以借助这个很棒的库在服务器
  • Android:在运行时更改矩形的颜色

    我有一个LinearLayout我有一个自定义视图 public class myView extends View Rect rects new Rect 30 30 80 80 Canvas myCanvas Override publ