如何用for循环中的ImageView替换字符串,Logic需要

时间:2017-10-27 08:35:12

标签: android string

我有一个字符串,我想将其转换为点(我制作的图片只包含一个点)

然后我想揭示我的一些字符串,但仍然希望其余部分保留在该点图像中!

我知道如何在不使用ImageView的情况下执行此操作,  以及我如何做到这一点:

a = df.groupby(by=['Fecha_Hora','Ticker_Suby']).sum()
df = pd.concat([a.groupby(level=[0]).cumsum(), 
                a.groupby(level=[1]).cumsum().add_suffix('_cum')], 1)
print (df)
                                 Rtdo_Bruto_x_Estrat  Rtdo_Neto_x_Estrat  \
Fecha_Hora          Ticker_Suby                                            
2017-01-01 17:00:00 NDX                          1.0                 1.0   
2017-01-01 19:00:00 RUT                          2.0                 4.0   
2017-01-02 17:00:00 RUT                          1.0                 1.0   
2017-01-02 19:00:00 NDX                          4.0                 6.0   

                                 Rtdo_Bruto_x_Estrat_cum  \
Fecha_Hora          Ticker_Suby                            
2017-01-01 17:00:00 NDX                              1.0   
2017-01-01 19:00:00 RUT                              2.0   
2017-01-02 17:00:00 RUT                              3.0   
2017-01-02 19:00:00 NDX                              5.0   

                                 Rtdo_Neto_x_Estrat_cum  
Fecha_Hora          Ticker_Suby                          
2017-01-01 17:00:00 NDX                             1.0  
2017-01-01 19:00:00 RUT                             4.0  
2017-01-02 17:00:00 RUT                             5.0  
2017-01-02 19:00:00 NDX                             7.0  

但不是这样做:

String txt = "Hello World";
String show = "Hel";
char[] chr =  txt.toCharArray();

        StringBuilder stringBuilder = new StringBuilder();
    for (int x=0; x<chr.length; x++)
    {


        if(x >= show.length() && !Character.isWhitespace(chr[x])) {

                // Here is where i want to show my (dot Image) instead 
                stringBuilder.append("*");

        }
        else
           stringBuilder.append(chr[x]);
    }

  TextView textview - findViewById(R.id.textView);
  textview.setText(stringBuilder);

我试图使用ImageView?它非常小(相同的点大小) 甚至可能吗?在我的布局中思考单词和TextView之间的空间!它有点难。

查看此图片,它会清楚地解释

enter image description here

1 个答案:

答案 0 :(得分:2)

为您提供稍微不同的解决方案,您不需要使用图像视图如果您有(相同的点大小)图像视图。键盘上有一个字符,我不知道如何发音,但它看起来像“•”。 您可以在SpannableStringBuilder的帮助下更改文本中特定字符串的颜色。您可以设置要设置的颜色。

使用SpannableStringBuilder创建一个SpannableString:

SpannableString str1= new SpannableString("•");
str1.setSpan(new ForegroundColorSpan(Color.YOUR_COLOR), 0, str1.length(), 0);
builder.append(str1);

之后设置你的文字:

textview.setText( builder, TextView.BufferType.SPANNABLE);

您的代码如下所示:

String txt = "Hello World";
String show = "Hel";
char[] chr =  txt.toCharArray();

SpannableStringBuilder stringBuilder = new SpannableStringBuilder();
    for (int x=0; x<chr.length; x++)
{
    if(x >= show.length() && !Character.isWhitespace(chr[x])) {
        // Here is where you need to append the dot.
        SpannableString str1= new SpannableString("•");
        str1.setSpan(new ForegroundColorSpan(Color.YOUR_COLOR), 0, str1.length(), 0);// Use Your COLOR (Orange).
        stringBuilder .apend(str1);
    }
    else
        stringBuilder.append(chr[x]);
}

TextView textview - findViewById(R.id.textView);
textview.setText( stringBuilder , TextView.BufferType.SPANNABLE);
  

我还没有测试过......尝试一下,告诉我它是否有效......