2016-10-02 6 views
0

私はAndroid上でカスタムビューを作成していますが、レンダリングの色はどのように変更しようとしても常に灰色です。AndroidキャンバスdrawRectの色は常に灰色で表示されますか?

private void init() { 
     Resources res = mContext.getResources(); 
     float density = res.getDisplayMetrics().density; 

     mBackgroundWidth = (int)(DEFAULT_WIDTH * density); // default to 20dp 
     mPrimaryColor = gaugeColour; 
     mPrimaryWidth = (int)(DEFAULT_WIDTH * density); // default to 20dp 

     x_Corner=30*density; 
     y_Corner=30*density; 

     mRegularTextSize = (int)(mBackgroundWidth * 0.75); //Double the size of the width; 

     mRectPaintPrimary = new Paint() { 
      { 
       setDither(true); 
       setStyle(Style.FILL); 
       setStrokeCap(Cap.ROUND); 
       setAntiAlias(true); 
      } 
     }; 
     mRectPaintPrimary.setColor(mPrimaryColor); 

//code for text formatting followed 

    } 

そして、これが

@Override 
    protected void onDraw(Canvas canvas) { 
     super.onDraw(canvas);// bound our drawable Rect to stay fully within our canvas 

     float left=0,top=0,right=mDrawingRect.right,bottom=mDrawingRect.bottom; 

     mProgressRect=new RectF(left,top,(mProgressPercent/100)*right,bottom); 

     canvas.drawRoundRect(mProgressRect, x_Corner, y_Corner, mRectPaintPrimary); 

     //noinspection ResourceType 
     String newColor = getResources().getString(mRectPaintPrimary.getColor()); 
     Log.d(TAG,"Rect colour while drawing is "+newColor); 

     String valueString=((int)mProgressPercent)+"%"; 
     if(mProgressPercent<10) 
      valueString=""; 
     canvas.drawText(valueString,mProgressRect.centerX(),mProgressRect.centerY()*1.5f,mRegularText); 

    } 

マイログonDraw関数では、実際にプログラム的に色が変更されたことを述べています。だから私は

D/GaugeViewのライン上のメッセージが表示されます:のRect色描きながら#ffe64a19

あるしかし、私はアンドロイドのディスプレイに表示することは、常に同じグレー...どんなにです私は色を変更することは可能にする方法:

enter image description here

答えて

0

は私が

を変更することにより、自分の必要な結果を持っているように見えます

mRectPaintPrimary.setColor(getResources().getColor(mPrimaryColor)); 

あるいはさらに良い

mRectPaintPrimary.setColor(ContextCompat.getColor(mContext,mPrimaryColor)); 
に3210

関連する問題