首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

HarmonyOS 开发实践 —— 使用Drawing实现图形绘制与显示

使用TextStyle接口创建一个文本样式实例TextStyle,TextStyle可以设置字体的颜色、大小、样式、类型。...使用drawing_brush.h的OH_Drawing_BrushCreate接口创建一个画刷实例cBrush,并设置填充颜色, 画刷用于形状内部的填充。...使用drawing_canvas.h的OH_Drawing_CanvasAttachPen和OH_Drawing_CanvasAttachBrush接口将画笔画刷的实例设置到画布实例中。...画刷设置到canvas中OH_Drawing_CanvasAttachBrush(cCanvas_, cBrush_);场景四:坐标获取,局部刷新Canvas的clipRect方法用于裁剪画布,将画布限制在指定的矩形区域内...方案给RenderNode的父组件Row ,添加 onTouch事件,在onTouch事件里面获取当前触摸点坐标。在 onTouch事件中通过clipRect绘制刷新局部区域。

8410

「SD编辑」开发记录

SD - Slam Dump(并不是) 这个App的主要目的是满足广大人民群众对图片编辑的需求。 字体问题 Android默认的字体不太好看,也不一定能很好地匹配背景图。...如果内置字体,遇到最大的问题是版权问题。 因此决定增加用户自行导入字体的功能,由用户来决定使用什么字体。 原来的字体文件是放在asset中。...DraftContent中存放着关联的存档ID。 能保存的东西都保存下来。...1.1.x版本 1.1.0版本的做法是,在Activity的onTouch方法里来改变TextView的坐标。从而实现TextView的拖动效果。...但是只有父view来处理触摸事件。 如果是子view接收到了触摸事件,则做一个bool标记firstOnTv = true,返回false,把触摸事件交给父view来处理。

68910
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android事件分发全面解析(基础篇)-夯实基础

    用一张搬运过来的事件分发流程图来说明一下: 当一个View需要处理事件时,如果它设置了 OnTouchListener, 那么 OnTouchListener 中的 onTouch 方法会被回调。...某个View 一旦开始处理事件,如果它不消耗 ACTION_DOWN 事件( onTOuchEvent 返回了 false ) ,那么同一事件序列中的其他事件都不会交给 它来处理,并且事件将重新交由它的父元素去处理...如果全部都不消费事件,事件最终由谁来安排。 onTouch中返回 true或者false,对onTouchEvent有什么影响吗。...现在改为true,这样的话LinearLayout 的onInterceptTouchEvent 将返回true,也就是ViewGroup 消费了此事件。...Activity这里,其实无论返回true还是false,都会消费事件。 onTouch中返回 true或者false,对onTouchEvent有什么影响吗?

    64720

    记录下帮助一位网友解决的关于android子控件的onTouch或onClick和父OnTouch 冲突的问题。

    前三天收到位网友的私信求助,问题大概如标题所示。具体是下面的情况,个人感觉,这个问题挺有趣,也会在实际项目开发中很常见。不想看前奏的请直接跳至解决方法。...在 scrollView 里面的第一层View里面有很多一样的自定义的 View,每个有具备自身的 onClick 和 onTouch 事件,目的是为了在用户点击的时候实现变色和相应。      ...我们知道,在同一个 View中,注意,是同一个 View,没嵌套的情况下,用户手势事件执行顺序是:       onTouch->onLongClick->onClick。...最能接近的是父View的onTouch里面使用 requestDisallowInterceptTouchEvent 来允许这个手势事件能传给 子View,但是,他的这个问题是,儿子不爽父亲先的。...解决方法: 既然传统的解决方法解决不了,我当时想到的是:      1:子View 使用父类的 onTouch 接口来实现点击和改变颜色,总之就是子View不要自己再实现 onClick和onTouch

    1.3K50

    android view事件分发机制_android事件分发流程图

    现在来分析下上面的打印结果;在1中,当我们点击Button时会先触发onTouch事件(之所以打印action为0,1各一次是因为按下抬起两个触摸动作被触发)然后才触发onClick事件;在2中也同理类似...如果你眼睛比较尖你会看见onTouch会有一个返回值,而且在上面返回了false。你可能会疑惑这个返回值有啥效果?那就验证一下吧,我们将上面的onTouch返回值改为ture。...控件触摸就会调运dispatchTouchEvent方法,而在dispatchTouchEvent中先执行的是onTouch方法,所以验证了实例结论总结中的onTouch优先于onClick执行道理。...猜的没错onClick就在onTouchEvent中执行的,而且是在onTouchEvent的ACTION_UP事件中执行的。...,如果返回值为false将停止下次事件派发,如果返回true将继续下次派发。

    63520

    开发HarmonyOS NEXT版五子棋游戏实战

    五子棋游戏代码分析这段代码实现了一个简单的五子棋游戏,使用了ArkTS(Ark TypeScript)语言。下面我将详细解释每个部分的功能,帮助你理解代码。1....导入和声明@Entry@Componentstruct GobangGame {@Entry 和 @Component 是装饰器,用于标记这是一个页面组件。...使用 ForEach 循环渲染棋盘,每个单元格是一个 Column,设置了宽度、高度、边框和背景颜色,并绑定了触摸事件。4....'#fff' : '#CBA' }getCellColor 方法根据单元格的值返回相应的颜色:1(黑棋)返回黑色 (#000)2(白棋)返回白色 (#fff)0(空位)返回浅灰色 (#CBA)5....将当前玩家设置为黑棋(1)。设置 gameOver 为 false,表示游戏未结束。最后小结这段代码实现了一个完整的五子棋游戏,包括棋盘绘制、玩家交互、胜负判断和游戏重置功能。

    5410

    记一次使用 android 自带 WebView 做富文本编辑器之API、机型的兼容及各种奇葩bug的解决

    2,开源项目richeditor及CrossWalk的比较---------------------------      关于richeditor,它是一个算是很不错的webView富文本编辑器,git...:       前进、返回、粗体、斜体、字号修改、背景颜色、字体颜色、图片及超链接插入,其中图片不含有其它功能,例如没有带有点击看大图,删除等。            .../   ,看到这,你或许心里默想,这明明讲的是文本编辑器,突然变成浏览器了?...使用方法很简单,我们只需要把 richeditor 里面继承的 WebView 改为 CrossWalk 的XWalkView 即可,修改下对应的函数。      ...解决:            使用java大招------反射,因为这个是在是难,源码在我解决这些东西的过程中是肯定有看的了,百度也不能停,顺便分享个 android 源码的链接,在线查看

    2.6K100

    图片画画板

    height宽高写死,config是Bitmap.Config.ARGB_8888 获取Canvas对象,通过new Canvas(bitmap) 调用Canvas对象的drawColor()方法,初始化背景颜色...onTouch() 在onTouch(View v,MotionEvent event)方法里面 参数:View对象是被触摸的对象,MotionEvent对象是触摸事件对象 调用MotionEvent对象的...事件为MotionEvent.ACTION_UP是手指离开屏幕 当手指触摸屏幕时 定义手指开始位置的坐标startX startY 调用MotionEvent对象的getX() 和 getY()方法,...获取Paint画笔对象,通过new出来 调用Paint对象的setTrokeWidth()方法,设置画笔粗细,参数:像素 调用Paint对象的setColor()方法,设置画笔颜色,参数:Color.GREEN...注意要从新更新画笔的位置 调用ImageView对象的setImageBitmap(bitmap)方法,把Bitmap显示到控件里 onTouch()方法一定要返回true,才能被持续执行 点击保存按钮

    89870

    细说Android事件传递

    就不再执行onTouchEvent了,更别说onClick监听了。 3、我们通常在onTouch监听了设置图片一旦被触摸就改变它的背景、透明度之类的,这个onTouch表示事件的时机。...因为onTouch返回了true,已提前将这个事件消费了,就不往下传了,dispatch流程提前终止。...为了更清晰这个流程,下面作如下改动: 1、如果事件传给了孩子们,但孩子没有onTouch和onClick监听怎么办?...果然事件就此打住,孩子们压根不知道,父亲执行了onClick和onTouch监听。可见父亲还是伟大的啊,只要谋士不拦截事件,那么事件就给孩子。...那么最简单的方法就是将图片+文字的父布局,也即让其容器ViewGroup的秘书将事件拦下,这样父亲就可以执行onClick了。

    1.4K100

    一文说清图表定制流程!

    文字色统一采用深灰色,背景色采用线性0°由浅红色向白色的渐变色,然后将处理为浅红色的光大证券logo设置为与背景同高、与背景右对齐。...做出如下调整: ①将簇状柱形图更改为带误差线的折线图,利用数据标记的上、下位置进行横向比较,利用折线的趋势变化进行纵向比较。...图表2:对同一个系列内不同公司的条形使用渐变色,虽然视觉效果好,但是性价比不高,填充过程较为复杂;用文本框+不同的文字颜色代替图例来区分不同系列的方式,虽然很实用,但是会造成与其他图表格式不统一的问题;...做出如下调整: ①添加散点图制作滑珠图,利用滑珠的位置和条形的长度来表示数据大小。 ②将统一系列的条形设置为相同的填充色,图例放在条形的左侧,与相应的个股名称一一对应,方便读者阅读。...做出如下调整: ①保留原表格框架,为周涨幅、月涨幅和年涨幅添加条件格式中的图标,让读者更容易区分正负涨幅。 ②取消主体部分中的隔行填充,改为虚线边框,避免和背景填充产生冲突。 05.

    1.3K20

    Android自定义控件总结

    //如果View没有设置背景,那么返回android:minWidth这个属性的值,这个值可以为0 //如果View设置了背景,那么返回android:minWidth和背景最小宽度两者中的最大值。...是系统所能识别出的被认为是滑动的最小距离,比如当俩次滑动事件的滑动距离小于这个值,我们就可以认为未达到滑动距离的临界值 ---- 事件分发 View中 setOnTouchListener的onTouch...,子View中如果将传递的事件消费掉,ViewGroup中将无法接收到任何事件。 onTouchEvent 一般自定义控件都需要去重写onTouchEvent方法。...有时候比ontounch更方便,比如处理onfling,onscroll(按下屏幕后拖动),长安,双击等事件。...背景动画: 亮度变化 (颜色变化) getBackground().setColorFilter((Integer)evaluateColor(percent, Color.BLACK, Color.TRANSPARENT

    1K11

    Android自定义控件总结

    //如果View没有设置背景,那么返回android:minWidth这个属性的值,这个值可以为0 //如果View设置了背景,那么返回android:minWidth和背景最小宽度两者中的最大值。...是系统所能识别出的被认为是滑动的最小距离,比如当俩次滑动事件的滑动距离小于这个值,我们就可以认为未达到滑动距离的临界值 事件分发 View中 setOnTouchListener的onTouch,onTouchEvent...,子View中如果将传递的事件消费掉,ViewGroup中将无法接收到任何事件。 onTouchEvent 一般自定义控件都需要去重写onTouchEvent方法。...有时候比ontounch更方便,比如处理onfling,onscroll(按下屏幕后拖动),长安,双击等事件。...背景动画: 亮度变化 (颜色变化) getBackground().setColorFilter((Integer)evaluateColor(percent, Color.BLACK, Color.TRANSPARENT

    1.3K80

    Android开发笔记(一百四十六)仿支付宝的支付密码输入框

    然而,计划赶不上变化,开发工作中总有一些现有控件无法直接实现的需求,就像支付宝的支付密码输入框,在一排方格区域内输入并显示密文密码,每个密文字符之间又有竖线分隔。...对于处理密码输入的EditText来说,需要实现以下几项操作: 1、把默认的下划线背景替换为圆角背景,且支持在获得焦点时高亮显示; 2、屏蔽输入光标,可调用setCursorVisible方法设置为不可见...; 3、把输入文字变成不可见,这里建议把文字颜色设为透明,而不是把文字大小设为0,因为若将大小设为0就无法自适应高度; 4、设置输入字符串的长度为6,设置长度操作可调用setFilters方法; 5、添加文本变更监听器...,决定当前显示明文还是密文;如果是密文,则显示哪个密文字符; 5、每当EditText里的文本发生变更之时,相应更新TextView队列的各项文本显示; 上述的改造内容,大部分都有可以直接调用的函数,...这个需求看起来很简单,只要强行给TextView队列调用setText方法即可,然而这不是安全的做法,因为它丢弃了CharSequence中的丰富信息。

    1.9K30
    领券