2016-01-13 64 views
2

即时通讯使用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

Consule这个https://github.com/Todd-Davies/ProgressWheel库。这将有助于 –

+0

我不想用库来做一些要求。 – user5779349

+0

这里有什么问题?如果你想根据百分比设置不同的图像,我没有看到任何问题,我错过了什么?你需要动画吗? –

回答

2

你可以简单地这样做:

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

//这里imgPercentage10,imgPercentage20在你绘制文件夹 等图像。

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 
     } 
     ... 
    } 
} 
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: 
     ..... 
    } 
相关问题