diff options
Diffstat (limited to 'libraries/AndroidBootstrap/src/com/beardedhen/androidbootstrap/FontAwesomeText.java')
-rw-r--r-- | libraries/AndroidBootstrap/src/com/beardedhen/androidbootstrap/FontAwesomeText.java | 274 |
1 files changed, 0 insertions, 274 deletions
diff --git a/libraries/AndroidBootstrap/src/com/beardedhen/androidbootstrap/FontAwesomeText.java b/libraries/AndroidBootstrap/src/com/beardedhen/androidbootstrap/FontAwesomeText.java deleted file mode 100644 index 75a130c5a..000000000 --- a/libraries/AndroidBootstrap/src/com/beardedhen/androidbootstrap/FontAwesomeText.java +++ /dev/null @@ -1,274 +0,0 @@ -package com.beardedhen.androidbootstrap; - -import java.util.Map; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -import android.content.Context; -import android.content.res.TypedArray; -import android.graphics.Typeface; -import android.util.AttributeSet; -import android.util.Log; -import android.util.TypedValue; -import android.view.LayoutInflater; -import android.view.View; -import android.view.animation.AlphaAnimation; -import android.view.animation.Animation; -import android.view.animation.LinearInterpolator; -import android.view.animation.RotateAnimation; -import android.widget.FrameLayout; -import android.widget.TextView; - -import com.beardedhen.androidbootstrap.R; - -public class FontAwesomeText extends FrameLayout { - - private static Typeface font; - private static Map<String, String> faMap; - - private TextView tv; - - private static final String FA_ICON_QUESTION = "fa-question"; - - public enum AnimationSpeed - { - FAST, - MEDIUM, - SLOW; - } - - static{ - faMap = FontAwesome.getFaMap(); - } - - public FontAwesomeText(Context context, AttributeSet attrs, int defStyle) { - super(context, attrs, defStyle); - initialise(attrs); - } - - public FontAwesomeText(Context context, AttributeSet attrs) { - super(context, attrs); - initialise(attrs); - } - - public FontAwesomeText(Context context) { - super(context); - initialise(null); - } - - - - - private void initialise( AttributeSet attrs ) - { - LayoutInflater inflator = (LayoutInflater)getContext().getSystemService( - Context.LAYOUT_INFLATER_SERVICE); - - //get font - readFont(getContext()); - - TypedArray a = getContext().obtainStyledAttributes(attrs, R.styleable.FontAwesomeText); - - //inflate the view - View fontAwesomeTextView = inflator.inflate(R.layout.font_awesome_text, null, false); - tv = (TextView)fontAwesomeTextView.findViewById(R.id.lblText); - - String icon = ""; - float fontSize = 14.0f; - - //icon - if (a.getString(R.styleable.FontAwesomeText_fa_icon) != null) { - icon = a.getString(R.styleable.FontAwesomeText_fa_icon); - } - - //font size - if (a.getString(R.styleable.FontAwesomeText_android_textSize) != null) { - - String xmlProvidedSize = attrs.getAttributeValue( - "http://schemas.android.com/apk/res/android", "textSize"); - final Pattern PATTERN_FONT_SIZE = Pattern - .compile("([0-9]+[.]?[0-9]*)sp"); - Matcher m = PATTERN_FONT_SIZE.matcher(xmlProvidedSize); - - if (m.find()) { - if (m.groupCount() == 1) { - fontSize = Float.valueOf(m.group(1)); - } - } - } - - //text colour - if(a.getString(R.styleable.FontAwesomeText_android_textColor) != null){ - tv.setTextColor(a.getColor(R.styleable.FontAwesomeText_android_textColor, R.color.bbutton_inverse)); - } - - setIcon(icon); - - tv.setTypeface(font); - tv.setTextSize(TypedValue.COMPLEX_UNIT_SP, fontSize); - - a.recycle(); - addView(fontAwesomeTextView); - } - - private static void readFont(Context context) - { - - if(font == null){ - try { - font = Typeface.createFromAsset(context.getAssets(), "fontawesome-webfont.ttf"); - } catch (Exception e) { - Log.e("BButton", "Could not get typeface because " + e.getMessage()); - font = Typeface.DEFAULT; - } - } - - } - - - /** - * Used to start flashing a FontAwesomeText item - * @param context the current applications context - * @param forever whether the item should flash repeatedly or just once - * @param speed how fast the item should flash, chose between FontAwesomeText.AnimationSpeed.SLOW / - * FontAwesomeText.AnimationSpeed.MEDIUM / FontAwesomeText.AnimationSpeed.FAST - */ - public void startFlashing(Context context, boolean forever, AnimationSpeed speed) - { - - Animation fadeIn = new AlphaAnimation(0, 1); - - //set up extra variables - fadeIn.setDuration(50); - fadeIn.setRepeatMode(Animation.REVERSE); - - //default repeat count is 0, however if user wants, set it up to be infinite - fadeIn.setRepeatCount(0); - if (forever){ - fadeIn.setRepeatCount(Animation.INFINITE); - } - - //default speed - fadeIn.setStartOffset(1000); - - //fast - if (speed.equals(AnimationSpeed.FAST)) - { - fadeIn.setStartOffset(200); - } - - //medium - if (speed.equals(AnimationSpeed.MEDIUM)) - { - fadeIn.setStartOffset(500); - } - - //set the new animation to a final animation - final Animation animation = fadeIn; - - //run the animation - used to work correctly on older devices - tv.postDelayed(new Runnable() { - @Override - public void run() { - tv.startAnimation(animation); - } - }, 100); - } - - - /** - * Used to start rotating a FontAwesomeText item - * @param context the current applications context - * @param clockwise true for clockwise, false for anti clockwise spinning - * @param speed how fast the item should flash, chose between FontAwesomeText.AnimationSpeed.SLOW / - * FontAwesomeText.AnimationSpeed.MEDIUM / FontAwesomeText.AnimationSpeed.FAST - */ - public void startRotate(Context context, boolean clockwise, AnimationSpeed speed) - { - Animation rotate; - - //set up the rotation animation - if (clockwise){ - rotate = new RotateAnimation(0, 360, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF,0.5f); - } else { - rotate = new RotateAnimation(360, 0, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF,0.5f); - } - - //set up some extra variables - rotate.setRepeatCount(Animation.INFINITE); - rotate.setInterpolator(new LinearInterpolator()); - rotate.setStartOffset(0); - rotate.setRepeatMode(Animation.RESTART); - - //defaults - rotate.setDuration(2000); - - //fast - if (speed.equals(AnimationSpeed.FAST)) - { - rotate.setDuration(500); - } - - //medium - if (speed.equals(AnimationSpeed.MEDIUM)) - { - rotate.setDuration(1000); - } - - //send the new animation to a final animation - final Animation animation = rotate; - - //run the animation - used to work correctly on older devices - tv.postDelayed(new Runnable() { - @Override - public void run() { - tv.startAnimation(animation); - } - }, 100); - - } - - - /** - * Used to stop animating any FontAwesomeText item - */ - public void stopAnimation(){ - //stop the animation - tv.clearAnimation(); - } - - - /** - * Used to set the icon for a FontAwesomeText item - * @param faIcon - String value for the icon as per http://fortawesome.github.io/Font-Awesome/cheatsheet/ - */ - public void setIcon(String faIcon) { - - String icon = faMap.get(faIcon); - - if (icon == null) - { - icon = faMap.get(FA_ICON_QUESTION); - } - - tv.setText(icon); - } - - /** - * Used to set the text color of the underlying text view. - * @param color - Integer value representing a color resource. - */ - public void setTextColor(int color) { - tv.setTextColor(color); - } - - /** - * Used to set the text size of the underlying text view. - * @param unit - Integer value representing a unit size - * @param size - Float value representing text size - */ - public void setTextSize(int unit, float size) { - tv.setTextSize(unit, size); - } - -} |