Articles of android drawable

SVG与Android上的PNG

这是在Android中处理图像的最佳方式。 最近在Android Lollipop中我们已经支持SVG(可缩放矢量图形)概念。 这是处理图像的最佳方式,以支持所有分辨率PNG(将图像放置在特定的可绘制资源中)或SVG(压缩得很好的小文件大小,可以扩展到任何大小而不会失去清晰度(非常小))。

DrawableCompat setTint不适用于API 19

我正在使用DrawableCompat来调整drawable,如下所示,着色似乎不适用于API 19.我正在使用支持lib版本23.3.0 Drawable drawable = textView.getCompoundDrawables()[drawablePosition]; if (drawable != null) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { drawable.setTint(color); } else { DrawableCompat.setTint(DrawableCompat.wrap(drawable), color); } }

Android-在shape标签中使用useLevel

android shape xml标签useLevel属性的目的是什么? 这与图层列表有关,但无关紧要。 从文档中我发现了useLevel标记的结合: 指示drawable的级别是否影响绘制渐变的方式。 所以如果我有以下xml片段: 然后使用useLevel = true,禁用环。 戒指出现必定为假。 但是这个属性的目的是什么? 文档不清楚。

使用具有三种以上颜色的gradientDrawable

根据我读过的内容,您可以使用gradientDrawable并为其设置三种颜色,例如: 但是,如果我想要三种以上的颜色,不仅如此,我希望能够设置每个颜色的位置(重量/百分比)? 是否可以使用API​​或我应该制作自己的自定义drawable? 如果我需要制作自己的定制可绘画,我应该怎么做?

如何在Android XML中旋转线?

我正在尝试使用XML在Android应用中绘制对角线,但它无效。 它只是绘制一条水平线。 main.xml : styles.xml : @drawable/background background.xml :

白色边框以及“LinearLayout”中的透明度

我想添加一个线性布局,具有透明背景和白色边框。 问题是:据我用谷歌搜索,我只能实现两者中的一个。 这是我做的: 在drawable中将以下内容保存为border.xml 我现有的页面布局 <LinearLayout android:id="@+id/quiz" android:layout_width="150dp" android:layout_height="120dp" android:background="#66041414" …… 当边界被包括在内时,我得到了不透明的背景。 我希望最终结果如下: 完全坚持下去。 只想find实现它的出路。 任何建议都会很有帮助。

Shape Drawable gradientRadius仅适用于像素。 这不是没用的吗? %值不起作用

我想使用带有径向渐变的shape drawable作为View的背景。 根据javadoc,渐变的半径可以设置为特定值(可能是像素)或百分比: 机器人:gradientRadius 渐变的半径,仅用于径向渐变。 可以是浮点值,例如“1.2”。 可以是小数值,它是附加%或%p的浮点数,例如“14.5%”。 %后缀总是表示基本大小的百分比; 可选的%p后缀提供相对于某个父容器的大小。 如果我错了,请纠正我,但在这里使用像素值是完全没用的,因为这个渐变看起来完全不同于一个屏幕密度到另一个(测试,是的,这是真的)。 我尝试使用%和%p值,但它们根本不起作用。 我深入研究了Android源代码,了解了如何处理gradientRadius并在GradientDrawable类中find它: TypedValue tv = a.peekValue( com.android.internal.R.styleable.GradientDrawableGradient_gradientRadius); if (tv != null) { boolean radiusRel = tv.type == TypedValue.TYPE_FRACTION; st.mGradientRadius = radiusRel ? tv.getFraction(1.0f, 1.0f) : tv.getFloat(); } else … } 啊哈! 因此,所有添加%或%p确实将我的值除以100.(我测试了这一点,因为TypeValue.getFraction()的文档更加不清楚)。 65%变为0.65。 有道理,但没有用处。 那么使用gradientRadius的最佳方法是什么? PS。 我使用GradientDrawable以编程方式添加了我的背景,我得到了理想的结果。 我使用GradientDrawable.setGradientRadius()来获取相对于视图宽度的值,并在设备之间获得一致的渐变。

如何更改Android中进度条的颜色? – (我尝试了一种方式,但它不起作用)

我使用以下代码为我的活动添加了一个进度条: 然后我称之为: progressbar = (LinearLayout) findViewById(R.id.linlaHeaderProgress); progressbar.setVisibility(View.VISIBLE); 将显示进度条,我想更改它的颜色。 默认情况下,进度条以灰色显示。 这是我试图改变颜色: 我在drawables文件夹中创建了一个xml文件,并将其命名为activityindicator.xml 。此xml的内容为: 我将布局文件更改为: 这就是我尝试过的,但颜色并没有改变。 谁能告诉我我做错了什么? 我正在使用Lollipop版本。

如何在android中为drawable添加阴影效果

我用drawable创建了聊天气泡看起来很好,现在我想在drawable下添加阴影效果,这样就可以产生3d效果。我不想使用9-pitch图像。 我只是想知道如何在这个drawable上添加阴影效果。 我的代码是 —- right_bubble_chat_drawable —用于角落指针’chat_laftarraow’ ——-我正在使用它们 请建议我如何在气泡下方添加阴影效果,如下图所示

从Uri检索可绘制资源

我以这种方式将可绘制资源路径存储在Uri中: Uri uri = Uri.parse(“android.resource://my_app_package/drawable/drawable_name”); 如何获得uri引用的Drawable? 我不想把它放在ImageView中,只需检索Drawable(或Bitmap)对象。