2016-01-13 45 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: 
     ..... 
    } 
相關問題