diff --git a/.travis.yml b/.travis.yml
index 7812812..726bc7c 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -6,7 +6,7 @@ android:
- tools
- tools
- platform-tools
- - build-tools-27.0.0
+ - build-tools-27.0.1
- android-27
- extra-android-m2repository
diff --git a/README.md b/README.md
index 6a8bb92..f970afc 100644
--- a/README.md
+++ b/README.md
@@ -27,6 +27,8 @@ You can customize ReadMoreTextView with:
- app:showTrimExpandedText: Show the trim text if it's true.
- app:colorClickableText: Text color of trim clickable text.
- app:trimMode: Choose trim mode with two options: trimModeLength or trimModeLines.
+- app:expandedTextAppearance: Style for text that appears when the view is expanded.
+- app:collapsedTextAppearance: Style for text that appears when the view is collapsed.
## Screenshots
diff --git a/app/build.gradle b/app/build.gradle
index 7c556c1..475052c 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -2,7 +2,7 @@ apply plugin: 'com.android.application'
android {
compileSdkVersion 27
- buildToolsVersion "27.0.0"
+ buildToolsVersion "27.0.1"
defaultConfig {
applicationId "com.borjabravo.readmoretextview"
@@ -25,8 +25,8 @@ android {
}
dependencies {
- implementation 'com.android.support:appcompat-v7:27.0.0'
- implementation 'com.android.support:design:27.0.0'
+ implementation 'com.android.support:appcompat-v7:27.0.1'
+ implementation 'com.android.support:design:27.0.1'
implementation project(':readmoretextview')
testImplementation 'junit:junit:4.12'
}
diff --git a/app/src/main/java/com/borjabravo/readmoretextviewsample/MainActivity.java b/app/src/main/java/com/borjabravo/readmoretextviewsample/MainActivity.java
index 8f50499..52caa21 100644
--- a/app/src/main/java/com/borjabravo/readmoretextviewsample/MainActivity.java
+++ b/app/src/main/java/com/borjabravo/readmoretextviewsample/MainActivity.java
@@ -17,6 +17,8 @@ protected void onCreate(Bundle savedInstanceState) {
TextView text3 = findViewById(R.id.text3);
text3.setText(getString(R.string.lorem_ipsum3));
TextView text4 = findViewById(R.id.text4);
- text4.setText(getString(R.string.one_line_text));
+ text4.setText(getString(R.string.lorem_ipsum));
+ TextView text5 = findViewById(R.id.text5);
+ text5.setText(getString(R.string.one_line_text));
}
}
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index 01a64c6..158c17a 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -13,14 +13,14 @@
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- app:trimCollapsedText="@string/show_all_content"/>
+ app:trimCollapsedText="@string/show_all_content" />
+ app:colorClickableText="@color/colorPrimary" />
+ app:trimLength="100" />
+ android:layout_marginTop="@dimen/activity_vertical_margin"
+ app:collapsedTextAppearance="@style/AppTheme.TextAppearance.Collapsed"
+ app:expandedTextAppearance="@style/AppTheme.TextAppearance.Expanded"
+ app:trimCollapsedText="@string/show_all_content" />
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index 545b9c6..5755ee3 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -17,4 +17,17 @@
+
+
+
diff --git a/readmoretextview/build.gradle b/readmoretextview/build.gradle
index 1fefb5e..1c96e0b 100644
--- a/readmoretextview/build.gradle
+++ b/readmoretextview/build.gradle
@@ -13,7 +13,7 @@ publish {
android {
compileSdkVersion 27
- buildToolsVersion '27.0.0'
+ buildToolsVersion '27.0.1'
defaultConfig {
minSdkVersion 14
@@ -28,6 +28,6 @@ android {
}
dependencies {
- implementation 'com.android.support:support-compat:27.0.0'
+ implementation 'com.android.support:support-compat:27.0.1'
testImplementation 'junit:junit:4.12'
}
\ No newline at end of file
diff --git a/readmoretextview/src/main/java/com/borjabravo/readmoretextview/ReadMoreTextView.java b/readmoretextview/src/main/java/com/borjabravo/readmoretextview/ReadMoreTextView.java
index f560151..30a177d 100644
--- a/readmoretextview/src/main/java/com/borjabravo/readmoretextview/ReadMoreTextView.java
+++ b/readmoretextview/src/main/java/com/borjabravo/readmoretextview/ReadMoreTextView.java
@@ -19,12 +19,14 @@
import android.content.res.TypedArray;
import android.graphics.Color;
import android.os.Build;
+import android.support.annotation.StyleRes;
import android.support.v4.content.ContextCompat;
import android.text.SpannableStringBuilder;
import android.text.Spanned;
import android.text.TextPaint;
import android.text.method.LinkMovementMethod;
import android.text.style.ClickableSpan;
+import android.text.style.TextAppearanceSpan;
import android.util.AttributeSet;
import android.view.View;
import android.view.ViewTreeObserver;
@@ -40,6 +42,11 @@ public class ReadMoreTextView extends TextView {
private static final boolean DEFAULT_SHOW_TRIM_EXPANDED_TEXT = true;
private static final String ELLIPSIZE = "... ";
+ @StyleRes
+ private final int expandedTextAppearance;
+ @StyleRes
+ private final int collapsedTextAppearance;
+
private CharSequence text;
private BufferType bufferType;
private boolean readMore = true;
@@ -74,6 +81,8 @@ public ReadMoreTextView(Context context, AttributeSet attrs) {
this.showTrimExpandedText =
typedArray.getBoolean(R.styleable.ReadMoreTextView_showTrimExpandedText, DEFAULT_SHOW_TRIM_EXPANDED_TEXT);
this.trimMode = typedArray.getInt(R.styleable.ReadMoreTextView_trimMode, TRIM_MODE_LINES);
+ this.expandedTextAppearance = typedArray.getResourceId(R.styleable.ReadMoreTextView_expandedTextAppearance, -1);
+ this.collapsedTextAppearance = typedArray.getResourceId(R.styleable.ReadMoreTextView_collapsedTextAppearance, -1);
typedArray.recycle();
viewMoreSpan = new ReadMoreClickableSpan();
onGlobalLayoutLineEndIndex();
@@ -137,12 +146,14 @@ private CharSequence updateCollapsedText() {
SpannableStringBuilder s = new SpannableStringBuilder(text, 0, trimEndIndex)
.append(ELLIPSIZE)
.append(trimCollapsedText);
+ addTextStyleSpan(collapsedTextAppearance, s, trimCollapsedText);
return addClickableSpan(s, trimCollapsedText);
}
private CharSequence updateExpandedText() {
if (showTrimExpandedText) {
SpannableStringBuilder s = new SpannableStringBuilder(text, 0, text.length()).append(trimExpandedText);
+ addTextStyleSpan(expandedTextAppearance, s, trimExpandedText);
return addClickableSpan(s, trimExpandedText);
}
return text;
@@ -153,6 +164,12 @@ private CharSequence addClickableSpan(SpannableStringBuilder s, CharSequence tri
return s;
}
+ private CharSequence addTextStyleSpan( int textAppearance, SpannableStringBuilder s, CharSequence text) {
+ s.setSpan(new TextAppearanceSpan(getContext(), textAppearance), s.length() - text.length(),
+ s.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
+ return s;
+ }
+
public void setTrimLength(int trimLength) {
this.trimLength = trimLength;
setText();
diff --git a/readmoretextview/src/main/res/values/attrs.xml b/readmoretextview/src/main/res/values/attrs.xml
index 54da4a8..4c5eeb2 100644
--- a/readmoretextview/src/main/res/values/attrs.xml
+++ b/readmoretextview/src/main/res/values/attrs.xml
@@ -1,6 +1,8 @@
+
+
@@ -8,8 +10,8 @@
-
-
+
+
\ No newline at end of file