2017-06-05 59 views
1

我有一個自定義網格視圖,其中包含圖像我有一種方法,可以改變包含圖像視圖的相對佈局的顏色我希望而不是改變相對佈局的顏色我想要將其更改爲圖像視圖,它是相同的圖像,但具有不同的顏色我試圖做到這一點但我失敗了,所以這裏是我的代碼 這是包含一些文本和圖像有一個int稱爲Table_Color這個項目的模塊,這是我希望從int更改爲imageView如何設置字符串圖像,而不是內部顏色

package abtech.waiteriano.com.waitrer.getters_and_setters; 

import android.graphics.Bitmap; 

/** 
* @author manish.s 
*/ 

public class Item { 
    Bitmap image; 
    String Table_ID; 
    String Table_Name; 
    String OpenIn; 
    String Covers; 
    String Count_Checks; 
    String CoversCapacity; 
    String Check_ID; 
    int Table_Color; 

    public Item(Bitmap image, String Table_ID, String Table_Name, String OpenIn, String Covers, String Count_Checks, String CoversCapacity, String Check_ID, int Table_Color) { 
     super(); 
     this.image = image; 
     this.Table_ID = Table_ID; 
     this.Table_Name = Table_Name; 
     this.OpenIn = OpenIn; 
     this.Covers = Covers; 
     this.Count_Checks = Count_Checks; 
     this.CoversCapacity = CoversCapacity; 
     this.Table_Color = Table_Color; 
     this.Check_ID = Check_ID; 
    } 

    public Bitmap getImage() { 
     return image; 
    } 

    public void setImage(Bitmap image) { 
     this.image = image; 
    } 

    public void setTable_ID(String Table_ID) { 
     this.Table_ID = Table_ID; 
    } 

    public String getTable_ID() { 
     return Table_ID; 
    } 

    public void setTable_Name(String Table_Name) { 
     this.Table_Name = Table_Name; 
    } 

    public String getTable_Name() { 
     return Table_Name; 
    } 

    public String getOpenIn() { 
     return OpenIn; 
    } 

    public void setOpenIn(String OpenIn) { 
     this.OpenIn = OpenIn; 
    } 

    public String getCovers() { 
     return Covers; 
    } 

    public void setCovers(String Covers) { 
     this.Covers = Covers; 
    } 

    public String getCount_Checks() { 
     return Count_Checks; 
    } 

    public void setCount_Checks(String Count_Checks) { 
     this.Count_Checks = Count_Checks; 
    } 

    public String getCoversCapacity() { 
     return CoversCapacity; 
    } 

    public void setCoversCapacity(String CoversCapacity) { 
     this.CoversCapacity = CoversCapacity; 
    } 

    public int getTable_Color() { 
     return Table_Color; 
    } 

    public void setTable_Color(int Table_Color) { 
     this.Table_Color = Table_Color; 
    } 
    public String getCheck_ID() { 
     return Check_ID; 
    } 

    public void setCheck_ID(String Check_ID) { 
     this.Check_ID = Check_ID; 
    } 
} 

我應該從int更改爲BitMap或字符串? 這裏就是我想在我的適配器類改變部分 我有一個HolderClass像這裏麪包含了一些文本和ImageView的和相對佈局此相對佈局是我的情況,我是要改變圖像視圖,這裏的類

static class RecordHolder { 
    TextView txtTime; 
    RelativeLayout tableRL; 
    TextView txtCovers; 
    TextView txtChecks; 
    TextView txtTitle; 
    ImageView imageItem; 

} 

,這裏是我的GET查看我所有的持有人項目

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    View row = convertView; 
    RecordHolder holder = null; 

    if (row == null) { 
     LayoutInflater inflater = ((Activity) context).getLayoutInflater(); 
     row = inflater.inflate(layoutResourceId, parent, false); 

     holder = new RecordHolder(); 
     holder.txtTitle = (TextView) row.findViewById(R.id.tablesnumberstv); 
     holder.txtTime = (TextView) row.findViewById(R.id.datetv); 
     holder.tableRL = (RelativeLayout) row.findViewById(R.id.rlID); 
     holder.txtChecks = (TextView) row.findViewById(R.id.checknumbertv); 
     holder.txtCovers = (TextView) row.findViewById(R.id.conversnumbertv); 
     holder.imageItem = (ImageView) row.findViewById(R.id.item_image); 
     row.setTag(holder); 
    } else { 
     holder = (RecordHolder) row.getTag(); 
    } 

    Item item = data.get(position); 
    holder.txtTitle.setText(item.getTable_Name()); 
    holder.txtTime.setText(item.getOpenIn()); 
    holder.txtCovers.setText(item.getCovers()); 
    holder.tableRL.layout(0, 0, 0, 0); 
    holder.txtChecks.setText(item.getCount_Checks()); 
    holder.imageItem.setImageBitmap(item.getImage()); 
    if (item.getTable_Color() != Color.GREEN) 
     holder.tableRL.setBackgroundColor(item.getTable_Color()); 
    return row; 

} 

,這是我的方法,它改變了相對佈局顏色

 ResultSet rs = ConnectionClass.Ret_RS(str); 
     while (rs.next()) { 
      String OpenIn = ""; 
      if (null != rs.getTime("OpenIn")) 
       OpenIn = rs.getTime("OpenIn").toString(); 
      int Table_Color = Color.GREEN; 
      if (rs.getInt("Count_Checks") > 0) { 
       if (rs.getInt("Num_Print") > 0) 
        Table_Color = Color.GRAY; 
       else 
        Table_Color = Color.RED; 
      } else { 
       if (null != rs.getTime("ClosedIn")) { 
        Date time_close = rs.getTime("ClosedIn"); 
        Date time_now = Calendar.getInstance().getTime(); 
        if (time_now.getSeconds() - time_close.getSeconds() <= 30) 
         Table_Color = Color.YELLOW; 
        else 
         Table_Color = Color.GREEN; 
       } else 
        Table_Color = Color.GREEN; 
      } 

      gridArray.add(new Item(homeIcon, rs.getString("ID"), rs.getString("Name"), OpenIn, rs.getString("Covers"), rs.getString("Count_Checks"), rs.getString("CoversCapacity"), rs.getString("Check_ID"), Table_Color)); 

     } 

,因爲我要爲一個例子圖像集的名稱

bluetable.png 
redtable.png 
yellowtable.png 
greytable.png 
greentable.png 

對不起,如果任何事情是不明確的,我希望有人能幫助我

回答

1

替換爲這一行

holder.tableRL.setBackgroundColor(item.getTable_Color()); 

holder.imageItem.setImageBitmap(((BitmapDrawable)drawable).getBitmap()); 

and in TableFragmentClass 替代

int Table_Color = Color.GREEN; 

int Table_Color = R.drawable.darkgreentable; 
相關問題