我正在开发一个看起来像自动调温器的应用程序,我正在使用该库为弯曲的搜索栏设置温度:https://github.com/MarcinMoskala/ArcSeekBar 该应用现在的外观如下: MainScreen
问题是我想动态地将拇指的颜色设置为其中一种,在单独的colors.xml资源文件的数组中定义 ,当拖动搜索栏时。
<string-array name="colors">
<item name="0">#2b3db4</item>
<item name="1">#2b3db4</item>
<item name="2">#00d9ff</item>
<item name="4">#00ff22</item>
<item name="5">#ddff00</item>
<item name="6">#ff9500</item>
<item name="7">#ff0d00</item>
</string-array>
将搜索栏的拇指定义为可绘制的,呈白色的圆形形状,然后在搜索栏上将其设置为布局资源文件中的xml属性:
<com.marcinmoskala.arcseekbar.ArcSeekBar
app:thumb="@drawable/thumb"
android:layout_gravity="center_horizontal"
android:id="@+id/seekArc"
android:layout_width="300dp"
android:layout_height="150dp" />
这是绘制对象的代码:
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid
android:color="@color/colorWhite"/>
<size
android:width="24dp"
android:height="24dp"/>
</shape>
在主要活动中,我正在初始化一个可绘制对象 drawable ,然后在 invoke 方法中调用该方法,每次拖动搜索栏时都会调用该颜色滑动条的背景和相应的温度值(目前为0-6)设置在搜寻栏顶部的文本视图中。
public class MainActivity extends AppCompatActivity {
public static int COLOR;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final GradientDrawable drawable = (GradientDrawable)getResources().getDrawable(R.drawable.thumb);
final ArcSeekBar arcSeekBar = findViewById(R.id.seekArc);
final TextView temperature=(TextView)findViewById(R.id.temperature_text);
arcSeekBar.setProgressBackgroundColor(getResources().getColor(R.color.colorBackground));
arcSeekBar.setProgressBackgroundWidth(0);
arcSeekBar.setProgressWidth(2);
arcSeekBar.setMaxProgress(6);
final String[] gradColors = getResources().getStringArray(R.array.colors);
int progress = arcSeekBar.getProgress();
arcSeekBar.setOnProgressChangedListener(new ProgressListener() {
@Override
public void invoke(int i) {
Log.i("Value=","is = "+i);
Log.i("Color=","is = "+gradColors[i]);
arcSeekBar.setProgressColor(Color.parseColor(gradColors[i]));
drawable.setColor(Color.parseColor(gradColors[i]));
temperature.setText(Integer.toString(i));
}
});
}
}
如果有人想看看,这是项目的链接。任何反馈都很赞赏。
https://drive.google.com/file/d/1T9F23zFbQycKYg-_4tRmSY9XwEXDobFj/view?usp=sharing