2012-08-07 54 views
2

我使用這個通過一個TextView個性化刪除線的TextView

textView.setPaintFlags有stike(textView.getPaintFlags()| Paint.STRIKE_THRU_TEXT_FLAG);

但現在我想個性化顏色並將其旋轉45°以適應內容的對角線。

我綁:

我雖然有關擴展TextView的小部件,並重寫的onDraw方法..但我在設計非常初學者...

所以任何幫助如何繪製紅色(顏色)在textView上旋轉行嗎?

回答

2

增加Mayani的響應

@Override 
protected void onDraw(Canvas canvas) { 
    Paint paint = new Paint(); 
    paint.setColor(strikeThroughColor); 
    paint.setStyle(Paint.Style.FILL); 
    paint.setFakeBoldText(true); 
    paint.setStrikeThruText(true); 
    paint.setStrokeWidth(strikeThroughWidth); 
    paint.setFlags(Paint.ANTI_ALIAS_FLAG); 
    super.onDraw(canvas); 
    float width = getWidth(); 
    float height = getHeight(); 
    canvas.drawLine(width/10, height/10, (width - width/10), (height - height/10), paint); 
} 
+0

+1很高興知道您已經嘗試過,並在我的回答中玩得更多,並自己找到解決方案。 – 2012-08-08 03:44:53

0

爲此,請按照下面的步驟:

  1. 通過擴展View
  2. 申報XML佈局同樣喜歡我們爲TextView的做,按鈕構件裏面這個自定義的TextView創建一個自定義的TextView的

例如:

class CustomTextView extends View { 
     private int mColor; 
     private int mRotationAngle, mRotationW, mRotationH; 

      private String mText; 
     public CustomTextView(Context context) { 
      super(context); 
      // set default parameters 
      mColor = Color.WHITE; 
      mRotationAngle = 0; 
     } 

     public void SetColor(int newcolor) { 
      mColor = newcolor; 
      this.invalidate(); 
     } 

     public void SetRotation(int newangle, int neww, int newh) { 
     mRotationAngle = newangle; 
     mRotationW = neww; 
     mRotationH = newh; 
     this.invalidate(); 
    } 

     public void SetText(String newtext) { 
      mText = newtext; 
      this.invalidate(); 
     } 

    @Override 
     protected void onDraw(Canvas canvas) { 
      Paint paint = new Paint(); 
      paint.setStyle(Paint.Style.FILL); 
      canvas.rotate(mRotationAngle,mRotationW,mRotationH); 
      canvas.drawText(mText, 0, 0, paint); 
      super.onDraw(canvas); 
     } 
    } 

更新:

檢查Specifying 「strikethrough」 on a section of TextView text

+0

沒有罷工已經在圖形佈局顯示出... – 2012-08-07 13:09:28

+0

我沒有找到做什麼,我需要......無論如何,你的代碼有什麼問題使得罷工槽沒有顯示?你在發佈之前試過嗎? – 2012-08-07 13:42:57

0

使用下面的方法,您可以不用在Java代碼的UI搞亂實現這樣的功能:

   <RelativeLayout 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_alignParentStart="true" 
        android:layout_centerVertical="true"> 

        <TextView 
         android:id="@+id/textview1" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:layout_alignParentStart="true" 
         android:text="$99" 
         android:textSize="12sp" /> 

        <View 
         android:layout_width="0dp" 
         android:layout_height="1dp" 
         android:layout_centerVertical="true" 
         android:layout_alignLeft="@+id/textview1" 
         android:layout_alignRight="@+id/textview1" 
         android:background="@color/fav_dark_red_color" /> 
       </RelativeLayout>