Android程序员面试宝典

github : https://github.com/open-android/BabushkaText

项目总贴地址:https://github.com/open-android/Android

配套视频

http://www.toutiao.com/i6430367450730070530/

第一步. 在项目的根目录build.gradle添加依赖

allprojects {    repositories {       ......        maven { url "https://jitpack.io" }    }}

第二步. 在Module的build.gradle添加依赖

compile 'com.github.open-android:EmphasisTextView:0.1.0'

第三步:初始化TextView:

第四步:实现上图效果,拷贝如下代码:

public class MainActivity extends ActionBarActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        // Display "9.5 excellent!"        final BabushkaText babushka1 = (BabushkaText)findViewById(R.id.text);        babushka1.addPiece(new BabushkaText.Piece.Builder("  9.5  ")                .backgroundColor(Color.parseColor("#073680"))                .textColor(Color.WHITE)                .build());        babushka1.addPiece(new BabushkaText.Piece.Builder(" excellent! ")                .backgroundColor(Color.parseColor("#DFF1FE"))                .textColor(Color.parseColor("#073680"))                .style(Typeface.BOLD)                .build());        babushka1.display();        // Display "3.4 horrible!"        final BabushkaText babushka2 = (BabushkaText)findViewById(R.id.text2);        babushka2.addPiece(new BabushkaText.Piece.Builder("  3.4  ")                .backgroundColor(Color.parseColor("#800736"))                .textColor(Color.WHITE)                .build());        babushka2.addPiece(new BabushkaText.Piece.Builder(" horrible! ")                .backgroundColor(Color.parseColor("#fedfe2"))                .textColor(Color.parseColor("#800736"))                .style(Typeface.BOLD)                .build());        babushka2.display();        // Display "starting at $420"        BabushkaText babushka3 = (BabushkaText)findViewById(R.id.text3);        babushka3.addPiece(new BabushkaText.Piece.Builder("starting at ")                .textColor(Color.parseColor("#50AF2C"))                .build());        babushka3.addPiece(new BabushkaText.Piece.Builder("$420!")                .textColor(Color.parseColor("#50AF2C"))                .textSizeRelative(1.2f)                .style(Typeface.BOLD)                .build());        babushka3.display();        // Display "nightly price"        BabushkaText babushka4 = (BabushkaText)findViewById(R.id.text4);        babushka4.addPiece(new BabushkaText.Piece.Builder("nightly price  ")                .textColor(Color.parseColor("#5F5F5F"))                .superscript()                .textSizeRelative(0.9f)                .style(Typeface.BOLD)                .build());        babushka4.addPiece(new BabushkaText.Piece.Builder("$256")                .textColor(Color.parseColor("#5F5F5F"))                .superscript()                .strike()                .textSizeRelative(0.9f)                .style(Typeface.BOLD)                .build());        babushka4.addPiece(new BabushkaText.Piece.Builder(" $179")                .textColor(Color.parseColor("#9E0719"))                .textSizeRelative(1.5f)                .style(Typeface.BOLD)                .build());        babushka4.display();        // Display "new York"        BabushkaText babushka5 = (BabushkaText)findViewById(R.id.text5);        babushka5.addPiece(new BabushkaText.Piece.Builder("New York, United States\n")                .textColor(Color.parseColor("#414141"))                .style(Typeface.BOLD)                .build());        babushka5.addPiece(new BabushkaText.Piece.Builder("870 7th Av, New York, Ny\n")                .textColor(Color.parseColor("#969696"))                .textSizeRelative(0.9f)                .style(Typeface.BOLD)                .build());        babushka5.addPiece(new BabushkaText.Piece.Builder("10019, United States of America")                .textColor(Color.parseColor("#969696"))                .textSizeRelative(0.8f)                .build());        babushka5.display();        // Display "Central Park"        BabushkaText babushka6 = (BabushkaText)findViewById(R.id.text6);        babushka6.addPiece(new BabushkaText.Piece.Builder("Central Park, NY\n")                .textColor(Color.parseColor("#414141"))                .build());        babushka6.addPiece(new BabushkaText.Piece.Builder("1.2 mi ")                .textColor(Color.parseColor("#0081E2"))                .textSizeRelative(0.9f)                .build());        babushka6.addPiece(new BabushkaText.Piece.Builder("from here")                .textColor(Color.parseColor("#969696"))                .textSizeRelative(0.9f)                .build());        babushka6.display();        // Display "Bryant Park Hotel"        BabushkaText babushka7 = (BabushkaText)findViewById(R.id.text7);        babushka7.addPiece(new BabushkaText.Piece.Builder("The Bryant Park Hotel\n")                .textColor(Color.parseColor("#414141"))                .build());        babushka7.addPiece(new BabushkaText.Piece.Builder("#6 of 434 ")                .textColor(Color.parseColor("#0081E2"))                .build());        babushka7.addPiece(new BabushkaText.Piece.Builder("in New York City\n")                .textColor(Color.parseColor("#969696"))                .build());        babushka7.addPiece(new BabushkaText.Piece.Builder("2487 reviews\n")                .textColor(Color.parseColor("#969696"))                .build());        babushka7.addPiece(new BabushkaText.Piece.Builder("$540")                .textColor(Color.parseColor("#F7B53F"))                .style(Typeface.BOLD)                .build());        babushka7.addPiece(new BabushkaText.Piece.Builder(" per night")                .textColor(Color.parseColor("#969696"))                .build());        babushka7.display();        findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                BabushkaText.Piece aPiece = babushka1.getPiece(0);                aPiece.setText("  9.9  ");                babushka1.display();            }        });    }}

支持的样式?


可以用下面的方法定制你的文字风格,其内部被转换成相应的spannables

Babushka Method Internal Span
textSize AbsoluteSizeSpan
textColor ForegroundColorSpan
textSizeRelative RelativeSizeSpan
backgroundColor BackgroundColorSpan
style StyleSpan
underline UnderlineSpan
strike StrikethroughSpan
superscript SuperscriptSpan
subscript SubscriptSpan

我还能做什么?


一旦你创建和显示你的babushkatext,你可以修改每个单独文本呢内容。例如,如果我们想把上面例子中的“1.2个MI”改为‘1.9公里’,我们可以做以下操作:

// grab the Piece at position 1Piece piece = babushka.getPiece(1);// modify it's textpiece.setText("1.9 km ");// you must always call display after you alter a Piece's textbabushka.display();
  • 欢迎关注微信公众号、长期为您推荐优秀博文、开源项目、视频

  • 微信公众号名称:Android干货程序员

更多相关文章

  1. GitHub 优秀的 Android(安卓)开源项目
  2. Android(安卓)开源组件和第三方库汇总
  3. Android小项目之底部导航(RadioButton&Fragment&ViewPager)
  4. Android(安卓)support 依赖升级到 androidx 转换问题
  5. Android----Google code android开源项目(四)
  6. android studio创建新项目color.xml文件错误
  7. Android(安卓)studio问题小记---Could not find com.android.sup
  8. Ubuntu14.04下最新Android(安卓)NDK安装
  9. android之switch控件的用法

随机推荐

  1. com.com.adapterdialog.MainActivity has
  2. Android 版本与 Bluetooth 版本之间的关
  3. Android隐性Intent的例子
  4. Android(安卓)启动画面跳转和去掉标题栏
  5. 转:Android 学习笔记2
  6. Android动态部署二:APK安装及AndroidManif
  7. Flutter入门到放弃:Could not find com.an
  8. android:configChanges中单独添加locale,
  9. [Android]Thread线程入门1
  10. android.uid.system