Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在android中创建类似于足部压力热图的颜色_Android_Image_Colors - Fatal编程技术网

在android中创建类似于足部压力热图的颜色

在android中创建类似于足部压力热图的颜色,android,image,colors,Android,Image,Colors,我正在创建一个应用程序,当搜索栏升起时,它会改变它的颜色。 例如,我有一个图像(类似于图像1),当搜索条升高到25%以上时,颜色应与图像2中的颜色相同。直到25%,图像应与图像1相同 实际上,应用程序am正在创建,类似于足部压力热图。在脚部压力热图中,用户的压力作为输入,从图像1(处于正常阶段)更改为图像2。但在这里,我使用简单的搜索栏将图像1更改为图像2 问题是,我不知道如何创建图像2中的颜色。我在考虑应用径向梯度。但我不知道如何正确使用它。还有其他方法吗 导入android.app.Act

我正在创建一个应用程序,当搜索栏升起时,它会改变它的颜色。 例如,我有一个图像(类似于图像1),当搜索条升高到25%以上时,颜色应与图像2中的颜色相同。直到25%,图像应与图像1相同

实际上,应用程序am正在创建,类似于足部压力热图。在脚部压力热图中,用户的压力作为输入,从图像1(处于正常阶段)更改为图像2。但在这里,我使用简单的搜索栏将图像1更改为图像2

问题是,我不知道如何创建图像2中的颜色。我在考虑应用径向梯度。但我不知道如何正确使用它。还有其他方法吗

导入android.app.Activity;
导入android.graphics.Canvas;
导入android.graphics.drawable.GradientDrawable;
导入android.os.Bundle;
导入android.widget.ImageView;
导入android.widget.SeekBar;
公共类MainActivity扩展活动实现SeekBar.onseekbarchanegListener
{
私人SeekBar-redSeekBar;
私有渐变可绘制可绘制;
ImageView img1;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
//TODO自动生成的方法存根
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
redSeekBar=(SeekBar)findViewById(R.id.skbr);
redSeekBar.setonseekbarchaneglistener(这个);
雷德希克巴设定最大值(254);
//格林斯基巴.塞特马克斯(254);
//blueSeekBar.setMax(254);
img1=(ImageView)findViewById(R.id.imageView1);
}
@凌驾
public void onProgressChanged(SeekBar-SeekBar、int-progress、boolean-touch)
{
如果(触摸){
如果(进度>=25)
mDrawable=新的GradientDrawable(GradientDrawable.Orientation.LEFT\u RIGHT,
新的int[]{0xFFFF0000,0xFF00FF00,
0xFF0000FF});

其他如果(进展)嗨!你能解释一下你的颜色变化背后的逻辑吗?同时,展示你迄今为止尝试改变颜色的方法。你可以参考如何提高获得答案的机会。嗨!谢谢。我已经编辑了问题,并添加了我尝试过的代码。有人知道着色部分吗?
import android.app.Activity;
import android.graphics.Canvas;
import android.graphics.drawable.GradientDrawable;
import android.os.Bundle;
import android.widget.ImageView;
import android.widget.SeekBar;





public class MainActivity extends Activity implements SeekBar.OnSeekBarChangeListener
{
    private SeekBar redSeekBar;
    private GradientDrawable mDrawable;


    ImageView img1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        redSeekBar = (SeekBar) findViewById(R.id.skbr);


        redSeekBar.setOnSeekBarChangeListener(this);



        redSeekBar.setMax(254);
        // greenSeekBar.setMax(254);
        // blueSeekBar.setMax(254);

        img1 = (ImageView) findViewById(R.id.imageView1);

    }


    @Override
    public void onProgressChanged(SeekBar seekBar, int progress, boolean touch)
    {

        if(touch) {
            if (progress >= 25 )

                mDrawable = new GradientDrawable(GradientDrawable.Orientation.LEFT_RIGHT,
                        new int[] { 0xFFFF0000, 0xFF00FF00,
                                0xFF0000FF });

            else if (progress <= 100)
                mDrawable = new GradientDrawable(GradientDrawable.Orientation.LEFT_RIGHT,
                        new int[] { 0xFFFF0000, 0xFF00FF00,
                                0xFF0000FF });

            }


        //colors = Color.rgb(redProgress, greenProgress, blueProgress);
        // imageView.setColorFilter(colors);
    }
    protected void onDraw(Canvas canvas) {
        //canvas.translate(0, mRect.height() + 10);
        canvas.save();
        canvas.translate(10, 10);
        mDrawable.setGradientType(GradientDrawable.RADIAL_GRADIENT);
        //setCornerRadius(mDrawable, 0, 0, r, r);
        mDrawable.draw(canvas);
        canvas.restore();
    }





    @Override
    public void onStartTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
    }
    @Override
    public void onStopTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
    }





}