Android ShapeDrawable无法上色

在Android中的View设置背景时,使用ShapeDrawable有可能出现无法上色的问题(最终背景为黑色),例如,使用如下的代码为控件设置颜色时,控件背景将会变成黑色

ShapeDrawable drawable=new ShapeDrawable();
Canvas canvas1 = new Canvas();
Paint paint=new Paint();
paint.setColor(Color.rgb(0x20, 0xAC, 0xFF));
Shape shape=new OvalShape();
shape.draw(canvas1, paint);
drawable.setShape(shape);

正确的做法可以参考如下代码:

ShapeDrawable drawable=new ShapeDrawable(new OvalShape());
drawable.setIntrinsicHeight(25);
drawable.setIntrinsicWidth(25);
drawable.getPaint().setColor(Color.rgb(0x20, 0xAC, 0xFF));

问题的原因可能是设置完shape并绘制shape后,drawable又重新绘制了图形,而drawable中的paint并没有设置颜色,导致出现无法上色的问题。

Android ShapeDrawable无法上色,布布扣,bubuko.com

时间: 2024-11-10 01:31:03

Android ShapeDrawable无法上色的相关文章

Android 自定义View合集

自定义控件学习 https://github.com/GcsSloop/AndroidNote/tree/master/CustomView 小良自定义控件合集 https://github.com/Mr-XiaoLiang 自定义控件三部曲 http://blog.csdn.net/harvic880925?viewmode=contents Android 从0开始自定义控件之View基础知识与概念 http://blog.csdn.net/airsaid/article/details/5

android学习笔记33——资源ShapeDrawable

ShapeDrawable ShapeDrawable用于定义一个基本的几何图像(如,矩形.圆形.线条.......). 定义ShapeDrawable的XML文件的根元素是<shape.../>,该元素可指定如下属性: android:shape=["rectangle"|"oval"|"ling"|"ring"]——指定定义那种类型的几何图形. 实例如下:椭圆.渐变背景的文本框 drawable资源文件==&g

Android基础入门教程——8.1.3 Android中的13种Drawable小结 Part 3

Android基础入门教程--8.1.3 Android中的13种Drawable小结 Part 3 标签(空格分隔): Android基础入门教程 本节引言: 本节我们来把剩下的四种Drawable也学完,他们分别是: LayerDrawable,TransitionDrawable,LevelListDrawable和StateListDrawable, 依旧贴下13种Drawable的导图: 1.LayerDrawable 层图形对象,包含一个Drawable数组,然后按照数组对应的顺序来

Android基础入门教程——8.1.2 Android中的13种Drawable小结 Part 2

Android基础入门教程--8.1.2 Android中的13种Drawable小结 Part 2 标签(空格分隔): Android基础入门教程 本节引言: 本节我们继续来学习Android中的Drawable资源,上一节我们学习了: ColorDrawable:NinePatchDrawable: ShapeDrawable:GradientDrawable!这四个Drawable~ 而本节我们继续来学习接下来的五个Drawable,他们分别是: BitmapDrawable:Insert

Android学习笔记-TextView(文本框)(一)

参考自文章:http://www.runoob.com/w3cnote/android-tutorial-textview.html 1.基础属性详解: id:为TextView设置一个组件id,根据id,我们可以在Java代码中通过findViewById()的方法获取到该对象,然后进行相关属性的设置,又或者使用RelativeLayout时,参考组件用的也是id! layout_width:组件的宽度,一般写:**wrap_content**或者**match_parent(fill_par

android应用开发-从设计到实现 3-6 静态原型的天气预报

静态原型的天气预报 未来5天的天气预报,可以看成由5个类似的天气模块构成,只要完成一个,其他几个就可以通过复制+修改内容实现改变. 首先来明确一下各个组件的尺寸和参数, 整个区域的大小,我设定成360dp*100dp: 左右边距设置成16dp: 这样一来,每日的天气模块就是(360-16-16)/ 5 = 65.6dp,我将它们设定成65dp宽: 天气的图标的大小设定成30dp的正方形区域(注意,这些图标不算是系统图标,所以它的尺寸不需要参考设计成24dp的系统图标): 日期的文字,参考Body

关于Android应用的资源,国际化和资源自适应

这篇文章其实早就想整理了,主要原因就是我对于应用资源很不注意,很不注意这个东西,但是这个东西虽然不难,却很重要(尤其是在需要更改的时候). 如果从源代码来区分可以分为三大类: 1.界面布局文件,xml文件,文件中每个标签都对应于相对的View标签. 2.Java源文件. 3.资源文件:主要以各种Xml为主,还可以包括一些图片,音视频等资源. 如果要按照资源类型来分的话可分为如下两大类: 1.可以通过R清单类访问的原声资源,保存在assets目录下.需要通过getAssets()来拿. 2.可以通

Android学习之Drawable(一)

Drawable有很多种,它们表示一种图像概念,但它们不全是图片.Drawable是什么呢?下面是Google Android API中的定义: A Drawable is a general abstraction for “something that can be drawn.” Most often you will deal with Drawable as the type of resource retrieved for drawing things to the screen;

Android - 点击可以转动的自定义右下角浮动FABImageButton按钮

因为项目需要一个右下角浮动的圆形的按钮,顺便增加了一个用户友好体验,点击按钮后开始转动,再次点击后停止转动,如图: 实现方式: 首先添加一个FABImageButton.java的类文件 package com.example.test; import android.annotation.SuppressLint; import android.content.Context; import android.content.res.Resources; import android.conte