我试图使用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;
}
}
答案 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:
.....
}