2013-07-20 122 views
14

我想設置使用text1.setBackgroundColor(Color.rgb(r,g,b));如何在android中設置rgb顏色?

是紅色的,綠色的文字的背景色,藍色值從數據庫中基於價值i來設置r=128,g=255,b=128編程它的顏色是暗綠色,但我運行它會顯示紅色

程序
for(int i = 0; i < list.length(); i++){ 
      JSONObject c = list.getJSONObject(i); 

      // Storing each json item in variable 
      // String GRPCODE = c.getString(TAG_GRPCODE); 
      String GRPNAME = c.getString(TAG_GRPNAME); 
      String QTY = c.getString(TAG_QNT); 
      String BUDGET = c.getString(TAG_BUDGET); 
      String STOCK = c.getString(TAG_STOCK); 
      String DIFF = c.getString(TAG_DIFF); 
      String DIFF_P = c.getString(TAG_DIFF_P); 

      COLOR = c.getString(TAG_COLOR); 

      /*String[] ARGB = COLOR.split(" "); 

      String V1=ARGB[0]; 
      String V2=ARGB[1]; 
      String V3=ARGB[2]; 
      String V4=ARGB[3]; 

      a=Integer.parseInt(V1); 
      r=Integer.parseInt(V2); 
      g=Integer.parseInt(V3); 
      b=Integer.parseInt(V4);*/ 


      HashMap<String, String> map = new HashMap<String, String>(); 

      // adding each child node to HashMap key => value 
      // map.put(TAG_GRPCODE, GRPCODE); 
      map.put(TAG_GRPNAME, GRPNAME); 

      map.put(TAG_QNT, QTY); 
      map.put(TAG_BUDGET, BUDGET); 
      map.put(TAG_STOCK, STOCK); 
      map.put(TAG_DIFF, DIFF); 
      map.put(TAG_DIFF_P, DIFF_P); 

      map.put(TAG_COLOR,COLOR); 
      //map.put(TAG_PHONE_MOBILE, mobile); 

      // adding HashList to ArrayList 
      contactList.add(map); 
     } 
    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 
    /** 
    * Updating parsed JSON data into ListView 
    * */ 
    ListAdapter adapter = new SimpleAdapter(this, datatList, 
      R.layout.list_item, 
      new String[] { TAG_GRPNAME, TAG_QNT, TAG_BUDGET, TAG_STOCK, TAG_DIFF, TAG_DIFF_P, }, 
      new int[] { 
        R.id.l2, R.id.l3, R.id.l4, R.id.l5, R.id.l6, R.id.l7}){ 
     @Override 
     public View getView(int position, View convertView, ViewGroup parent) { 
      View v = convertView; 
      if (v == null) { 
       LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
       v = vi.inflate(R.layout.list_item, null); 
      } 
       text1 = (TextView) v.findViewById(R.id.l7); 


      HashMap<String, String> map=dataList.get(position); 
      map.get(TAG_COLOR); 
      String[] ARGB = COLOR.split(" "); 
      String V1=ARGB[0]; 
      String V2=ARGB[1]; 
      String V3=ARGB[2]; 
      String V4=ARGB[3]; 
      a=Integer.parseInt(V1); 
      r=Integer.parseInt(V2); 
      g=Integer.parseInt(V3); 
      b=Integer.parseInt(V4); 

      text1.setBackgroundColor(Color.rgb(r,g,b)); 

      return super.getView(position, v, parent); 
     } 
    }; 
+0

在setbackgroundcolor之前放置一條日誌語句,檢查是否你想要的值是 –

+0

@OnurA。在設定顏色之前,我檢查它是否會正確 – ibu

+2

您的意見都具有相同的顏色?因爲在每次使用for循環時,r,g,b值都會使用db @ –

回答

21

最後我得到了回答

ListAdapter adapter = new SimpleAdapter(this, dataList, 
      R.layout.list_item, 
      new String[] { TAG_GRPNAME, TAG_QNT, TAG_BUDGET, TAG_STOCK, TAG_DIFF, TAG_DIFF_P, }, 
      new int[] { 
        R.id.l2, R.id.l3, R.id.l4, R.id.l5, R.id.l6, R.id.l7}){ 
     @Override 
     public View getView(int position, View convertView, ViewGroup parent) { 
      View v = convertView; 
      if (v == null) { 
       LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
       v = vi.inflate(R.layout.list_item, null); 
      } 
       text1 = (TextView) v.findViewById(R.id.l7); 

       String rgbColor= dataList.get(position).get(TAG_COLOR); 
       String[] ARGB = rgbColor.split(" ");  
       a=Integer.parseInt(ARGB[0]); 
       r=Integer.parseInt(ARGB[1]); 
       g=Integer.parseInt(ARGB[2]); 
       b=Integer.parseInt(ARGB[3]);       
       text1.setBackgroundColor(Color.rgb(r, g, b)); 
       return super.getView(position, v, parent); 
      } 

    };