android - 如何以编程方式翻译 Drawable Gradient?
问题描述
我试图以编程方式创建的线性渐变:
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
<gradient
android:type="linear"
android:centerX="50%"
android:startColor="#FFFFFFFF"
android:centerColor="#99FF8A8A"
android:endColor="#FFF8F8F8"
android:angle="90"/>
</shape>
我写了这段代码:但我没有得到相同的结果。
GradientDrawable _gradientDrawable = new GradientDrawable(
GradientDrawable.Orientation.BOTTOM_TOP, new int[]{
Color.parseColor("#FFFFFFFF"),
Color.parseColor("#99FF8A8A"),
Color.parseColor("#FF8F8F8")
});
myimage.setBackground(_gradientDrawable);
我的错在哪里?
解决方案
要在代码中执行此操作,您需要创建一个 GradientDrawable。
设置角度和颜色的唯一机会是在构造函数中。
如果要更改颜色或角度,只需创建一个新的 GradientDrawable 并将其设置为背景。
View layout = findViewById(R.id.mainlayout);
GradientDrawable gd = new GradientDrawable(
GradientDrawable.Orientation.TOP_BOTTOM,
new int[] {0xFF616261,0xFF131313});
gd.setCornerRadius(0f);
layout.setBackgroundDrawable(gd);
推荐阅读
- html - Can not place 2 tables side-to-side
- python-3.x - 如何将聊天机器人问题及其答案添加到 pandas 数据框中,以便以后在提出相同问题时可以检索到它
- c# - .NET MVC Unable to Deserialize JSON
- jestjs - Testing ScrollIntoView in Jest
- excel - 使用消息框更改范围的字体颜色?和工作表选择?
- c# - AuthorizeAttribute for Web API (ASP.NET Core 2)
- c++ - 如果ap是一个指针,为什么我可以通过ap[i]来引用它的值呢?
- python - python中用户输入平方根、常数、虚数等的选项
- go - 在任何一个中都找不到包“bufio”
- c# - c# 正则表达式重复计数不能是变量