在imageview中设置图像,使其看起来像一个进度条

时间:2016-01-13 07:52:28

标签: android imageview

我试图使用11个图像来表示进度,使弧进度(就像c清洁应用程序一样)。我准备了图像但是,我想根据百分比在我的imageview中设置每个图像。例如,

如果

10% - img1

否则如果

20% - img2

否则如果

30% - img3

等等

public static int getWifiStrengthPercentage(Context context) {
    try {
        WifiManager wifiManager = (WifiManager) context
                .getSystemService(Context.WIFI_SERVICE);
        int rssi = wifiManager.getConnectionInfo().getRssi();
        int level = WifiManager.calculateSignalLevel(rssi, 10);
        int percentage = (int) ((level / 10.0) * 100);
        tv.setText(percentage + " %");
        return percentage;
    } catch (Exception e) {
        return 0;
    }
}

3 个答案:

答案 0 :(得分:2)

你可以这样做:

if(percentage == 10)
{
img.setImageResource(R.drawable.imgPercentage10); 
}
else if(percentage == 20)
{
img.setImageResource(R.drawable.imgPercentage20);
}
.
.

//这里imgPercentage10,imgPercentage20是drawable文件夹中的图像 等等。

答案 1 :(得分:1)

尝试在AsyncTask中执行此操作:

public class DoStuffAsyncTask extends AsyncTask<Void, Integer, Void> {

    ImageView progImg;

    public DoStuffAsyncTask(ImageView progImg) {
        this.progImg = progImg;
    }

    @Override
    protected Void doInBackground(Integer... params) {
        // Do Stuff
        ...
    }

    @Override
    protected void onProgressUpdate(Integer... values) {
        super.onProgressUpdate(values);
        if (10%) {
            progImg.setImageResource(R.drawable.img1)
            // Set whatever
        }
        ...
    }
}

答案 2 :(得分:1)

您始终可以动态地将imageResource设置为imageview。

  ImageView imgView = (ImageView)findViewById(R.id.imgView);
  switch(getWifiStrengthPercentage(this)) {
      case 10:
      imgView.setImageResource(R.drawable.img1);
      break;
      case 20:
      imgView.setImageResource(R.drawable.img2);
      default:
      .....
    }