|
13 | 13 | import android.util.AttributeSet; |
14 | 14 | import android.util.LayoutDirection; |
15 | 15 | import android.view.ViewGroup; |
16 | | -import android.widget.TextView; |
17 | 16 |
|
18 | 17 | import androidx.annotation.Nullable; |
19 | | -import androidx.appcompat.widget.AppCompatTextView; |
20 | 18 | import androidx.core.text.TextUtilsCompat; |
21 | 19 |
|
22 | 20 | import com.flyjingfish.perfecttextviewlib.PerfectTextView; |
|
25 | 23 |
|
26 | 24 | public class GradientTextView extends PerfectTextView { |
27 | 25 |
|
28 | | - private final TextView backGroundText; |
| 26 | + private final PerfectTextView backGroundText; |
29 | 27 | private int strokeWidth; |
30 | 28 | private int[] gradientStrokeColors; |
31 | 29 | private float[] gradientStrokePositions; |
@@ -53,7 +51,7 @@ public GradientTextView(Context context, AttributeSet attrs, |
53 | 51 | if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) { |
54 | 52 | isRtl = TextUtilsCompat.getLayoutDirectionFromLocale(Locale.getDefault()) == LayoutDirection.RTL; |
55 | 53 | } |
56 | | - backGroundText = new AppCompatTextView(context, attrs, defStyle); |
| 54 | + backGroundText = new PerfectTextView(context, attrs, defStyle); |
57 | 55 | TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.GradientTextView); |
58 | 56 | strokeWidth = typedArray.getDimensionPixelSize(R.styleable.GradientTextView_gradient_stroke_strokeWidth, 0); |
59 | 57 | int startStrokeColor = typedArray.getColor(R.styleable.GradientTextView_gradient_stroke_startColor, 0); |
@@ -102,7 +100,7 @@ public GradientTextView(Context context, AttributeSet attrs, |
102 | 100 |
|
103 | 101 | initCompoundDrawables(); |
104 | 102 |
|
105 | | - backGroundText.setCompoundDrawablePadding(getCompoundDrawablePadding()); |
| 103 | + |
106 | 104 | } |
107 | 105 |
|
108 | 106 |
|
@@ -389,6 +387,192 @@ private void initCompoundDrawables(){ |
389 | 387 | } |
390 | 388 |
|
391 | 389 | backGroundText.setCompoundDrawables(drawableLeft,drawableTop,drawableRight,drawableBottom); |
| 390 | + backGroundText.setDrawableStartPadding(getDrawableStartPadding()); |
| 391 | + backGroundText.setDrawableEndPadding(getDrawableEndPadding()); |
| 392 | + backGroundText.setDrawableLeftPadding(getDrawableLeftPadding()); |
| 393 | + backGroundText.setDrawableRightPadding(getDrawableRightPadding()); |
| 394 | + backGroundText.setDrawableTopPadding(getDrawableTopPadding()); |
| 395 | + backGroundText.setDrawableBottomPadding(getDrawableBottomPadding()); |
| 396 | + } |
| 397 | + |
| 398 | + @Override |
| 399 | + public void setDrawableStart(int drawableStart) { |
| 400 | + backGroundText.setDrawableStart(drawableStart); |
| 401 | + super.setDrawableStart(drawableStart); |
| 402 | + } |
| 403 | + |
| 404 | + @Override |
| 405 | + public void setDrawableEnd(int drawableEnd) { |
| 406 | + backGroundText.setDrawableEnd(drawableEnd); |
| 407 | + super.setDrawableEnd(drawableEnd); |
| 408 | + } |
| 409 | + |
| 410 | + @Override |
| 411 | + public void setDrawableTop(int drawableTop) { |
| 412 | + backGroundText.setDrawableTop(drawableTop); |
| 413 | + super.setDrawableTop(drawableTop); |
| 414 | + } |
| 415 | + |
| 416 | + @Override |
| 417 | + public void setDrawableBottom(int drawableBottom) { |
| 418 | + backGroundText.setDrawableBottom(drawableBottom); |
| 419 | + super.setDrawableBottom(drawableBottom); |
| 420 | + } |
| 421 | + |
| 422 | + @Override |
| 423 | + public void setDrawableLeft(int drawableLeft) { |
| 424 | + backGroundText.setDrawableLeft(drawableLeft); |
| 425 | + super.setDrawableLeft(drawableLeft); |
| 426 | + } |
| 427 | + |
| 428 | + @Override |
| 429 | + public void setDrawableRight(int drawableRight) { |
| 430 | + backGroundText.setDrawableRight(drawableRight); |
| 431 | + super.setDrawableRight(drawableRight); |
| 432 | + } |
| 433 | + |
| 434 | + @Override |
| 435 | + public void setDrawableStart(Drawable drawableStart) { |
| 436 | + backGroundText.setDrawableStart(drawableStart); |
| 437 | + super.setDrawableStart(drawableStart); |
| 438 | + } |
| 439 | + |
| 440 | + @Override |
| 441 | + public void setDrawableEnd(Drawable drawableEnd) { |
| 442 | + backGroundText.setDrawableEnd(drawableEnd); |
| 443 | + super.setDrawableEnd(drawableEnd); |
| 444 | + } |
| 445 | + |
| 446 | + @Override |
| 447 | + public void setDrawableLeft(Drawable drawableLeft) { |
| 448 | + backGroundText.setDrawableLeft(drawableLeft); |
| 449 | + super.setDrawableLeft(drawableLeft); |
| 450 | + } |
| 451 | + |
| 452 | + @Override |
| 453 | + public void setDrawableRight(Drawable drawableRight) { |
| 454 | + backGroundText.setDrawableRight(drawableRight); |
| 455 | + super.setDrawableRight(drawableRight); |
| 456 | + } |
| 457 | + |
| 458 | + @Override |
| 459 | + public void setDrawableTop(Drawable drawableTop) { |
| 460 | + backGroundText.setDrawableTop(drawableTop); |
| 461 | + super.setDrawableTop(drawableTop); |
392 | 462 | } |
393 | 463 |
|
| 464 | + @Override |
| 465 | + public void setDrawableBottom(Drawable drawableBottom) { |
| 466 | + backGroundText.setDrawableBottom(drawableBottom); |
| 467 | + super.setDrawableBottom(drawableBottom); |
| 468 | + } |
| 469 | + |
| 470 | + |
| 471 | + @Override |
| 472 | + public void setSelectedText(CharSequence selectedText) { |
| 473 | + backGroundText.setSelectedText(selectedText); |
| 474 | + super.setSelectedText(selectedText); |
| 475 | + } |
| 476 | + |
| 477 | + @Override |
| 478 | + public void setSelectedText(int resid) { |
| 479 | + backGroundText.setSelectedText(resid); |
| 480 | + super.setSelectedText(resid); |
| 481 | + } |
| 482 | + |
| 483 | + @Override |
| 484 | + public void setDefaultHint(CharSequence defaultHint) { |
| 485 | + backGroundText.setDefaultHint(defaultHint); |
| 486 | + super.setDefaultHint(defaultHint); |
| 487 | + } |
| 488 | + |
| 489 | + @Override |
| 490 | + public void setSelectedHint(CharSequence selectedHint) { |
| 491 | + backGroundText.setSelectedHint(selectedHint); |
| 492 | + super.setSelectedHint(selectedHint); |
| 493 | + } |
| 494 | + |
| 495 | + @Override |
| 496 | + public void setDefaultHint(int resid) { |
| 497 | + backGroundText.setDefaultHint(resid); |
| 498 | + super.setDefaultHint(resid); |
| 499 | + } |
| 500 | + |
| 501 | + @Override |
| 502 | + public void setSelectedHint(int resid) { |
| 503 | + backGroundText.setSelectedHint(resid); |
| 504 | + super.setSelectedHint(resid); |
| 505 | + } |
| 506 | + |
| 507 | + @Override |
| 508 | + public void setDrawableStartWidthHeight(int width, int height) { |
| 509 | + backGroundText.setDrawableStartWidthHeight(width, height); |
| 510 | + super.setDrawableStartWidthHeight(width, height); |
| 511 | + } |
| 512 | + |
| 513 | + @Override |
| 514 | + public void setDrawableTopWidthHeight(int width, int height) { |
| 515 | + backGroundText.setDrawableTopWidthHeight(width, height); |
| 516 | + super.setDrawableTopWidthHeight(width, height); |
| 517 | + } |
| 518 | + |
| 519 | + @Override |
| 520 | + public void setDrawableEndWidthHeight(int width, int height) { |
| 521 | + backGroundText.setDrawableEndWidthHeight(width, height); |
| 522 | + super.setDrawableEndWidthHeight(width, height); |
| 523 | + } |
| 524 | + |
| 525 | + @Override |
| 526 | + public void setDrawableBottomWidthHeight(int width, int height) { |
| 527 | + backGroundText.setDrawableBottomWidthHeight(width, height); |
| 528 | + super.setDrawableBottomWidthHeight(width, height); |
| 529 | + } |
| 530 | + |
| 531 | + @Override |
| 532 | + public void setDrawableLeftWidthHeight(int width, int height) { |
| 533 | + backGroundText.setDrawableLeftWidthHeight(width, height); |
| 534 | + super.setDrawableLeftWidthHeight(width, height); |
| 535 | + } |
| 536 | + |
| 537 | + @Override |
| 538 | + public void setDrawableRightWidthHeight(int width, int height) { |
| 539 | + backGroundText.setDrawableRightWidthHeight(width, height); |
| 540 | + super.setDrawableRightWidthHeight(width, height); |
| 541 | + } |
| 542 | + |
| 543 | + @Override |
| 544 | + public void setDrawableStartPadding(int drawableStartPadding) { |
| 545 | + backGroundText.setDrawableStartPadding(drawableStartPadding); |
| 546 | + super.setDrawableStartPadding(drawableStartPadding); |
| 547 | + } |
| 548 | + |
| 549 | + @Override |
| 550 | + public void setDrawableTopPadding(int drawableTopPadding) { |
| 551 | + backGroundText.setDrawableTopPadding(drawableTopPadding); |
| 552 | + super.setDrawableTopPadding(drawableTopPadding); |
| 553 | + } |
| 554 | + |
| 555 | + @Override |
| 556 | + public void setDrawableEndPadding(int drawableEndPadding) { |
| 557 | + backGroundText.setDrawableEndPadding(drawableEndPadding); |
| 558 | + super.setDrawableEndPadding(drawableEndPadding); |
| 559 | + } |
| 560 | + |
| 561 | + @Override |
| 562 | + public void setDrawableBottomPadding(int drawableBottomPadding) { |
| 563 | + backGroundText.setDrawableBottomPadding(drawableBottomPadding); |
| 564 | + super.setDrawableBottomPadding(drawableBottomPadding); |
| 565 | + } |
| 566 | + |
| 567 | + @Override |
| 568 | + public void setDrawableLeftPadding(int drawableLeftPadding) { |
| 569 | + backGroundText.setDrawableLeftPadding(drawableLeftPadding); |
| 570 | + super.setDrawableLeftPadding(drawableLeftPadding); |
| 571 | + } |
| 572 | + |
| 573 | + @Override |
| 574 | + public void setDrawableRightPadding(int drawableRightPadding) { |
| 575 | + backGroundText.setDrawableRightPadding(drawableRightPadding); |
| 576 | + super.setDrawableRightPadding(drawableRightPadding); |
| 577 | + } |
394 | 578 | } |
0 commit comments