gpt4 book ai didi

java - 安卓。 GradientDrawable 设置GradientCenter

转载 作者:行者123 更新时间:2023-12-01 05:32:52 24 4
gpt4 key购买 nike

我试图让 GradientDrawable 动态改变它的渐变中心。我有简单的测试 View ,它只是用渐变绘制来绘制背景。然后我写了这样的代码:

public class TestActivity extends Activity {

protected TestView test_view;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.test);
test_view = (TestView)findViewById(R.id.test_view);
test_view.setOnTouchListener(new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
float x = event.getX()/TestView.WND_WIDTH;
float y = event.getY()/TestView.WND_HEIGHT;
Log.i("zim32", String.valueOf(x));
GradientDrawable drawable = (GradientDrawable)test_view.getBackground();
drawable.setGradientCenter(x, y);
test_view.invalidate();
return true;
}
});
}
}

但是渐变中心保持在中心位置...没有任何移动..可能出了什么问题?

最佳答案

尝试在此无效之前调用view.setBackgroundDrawable(drawable);。看起来没有必要这样做,因为您正在获取对已设置的背景可绘制对象的引用并为其设置属性,但是如果您看到 View.setBackgroundDrawable(drawable); 后面的源 你会看到它还设置了一些标志等等。供引用:grepcode

另一件事要提 - 您正在其他地方设置初始背景可绘制,不是吗?因为如果您没有在其他地方设置初始背景可绘制对象,test_view.getBackground() 将返回 null 并且您基本上什么也不做。 :)

关于java - 安卓。 GradientDrawable 设置GradientCenter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8695917/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com