2013-07-05 2 views
2

Мы разрабатываем приложение для Android для химии. Для этого мы используем Eclipse.Вспомогательные инструменты для написания уравнения химической/математики в платформе android

Для этого приложения нам необходимо написать так много уравнений, которые содержат поддержку индексов и надстроек, чтобы показать текст для химической формулы.

Например: H2O, ZnCl2 должны быть записаны в соответствующем формате нижнего индекса. Как это решить?

Пожалуйста, ответьте.

ответ

3

Вы можете использовать SpannableStringBuilder как это ..: -

TextView tv = (TextView)findViewById(R.id.mytext);//Your texView 

     SpannableStringBuilder cs = new SpannableStringBuilder("H2O, ZnCl2");//Your suppose String 
     cs.setSpan(new SubscriptSpan(), 1, 2, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);//Setting span index 
     cs.setSpan(new RelativeSizeSpan((float)0.75), 1, 2, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
     cs.setSpan(new SubscriptSpan(), 9, 10, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
     cs.setSpan(new RelativeSizeSpan((float)0.75), 9, 10, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
     tv.setText(cs); 

Если вы хотите надстрочный текст, а затем просто заменить SubscriptSpan с SuperscriptSpan, как это.

TextView tv = (TextView)findViewById(R.id.mytext); 

     SpannableStringBuilder cs = new SpannableStringBuilder("H2O, ZnCl2"); 
     cs.setSpan(new SuperscriptSpan(), 1, 2, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
     cs.setSpan(new RelativeSizeSpan((float)0.75), 1, 2, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
     cs.setSpan(new SuperscriptSpan(), 9, 10, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
     cs.setSpan(new RelativeSizeSpan((float)0.75), 9, 10, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
     tv.setText(cs); 

Надеется, что это помогает ..

0

Я предпочитаю использовать специальный шрифт (например, DejaVuSans.ttf) для такого рода вещи. Скопируйте файл TTF в активах/шрифты, а затем использовать его как это:

  TextView ttt = (TextView) getActivity().findViewById(R.id.text); 

      Typeface font = Typeface.createFromAsset(getActivity().getAssets(),"fonts/DejaVuSans.ttf"); 
      ttt.setTypeface(font); 
      ttt.setText(textString); 

Вы затем вставлять Юникод в текстовой строке: например,

f (x) = x \ u00B2 + 2x + 3 или вы можете использовать таблицу переводов, если вы предпочитаете использовать более содержательные символы в своих формулах.

+0

Как добавить этот javascript-файл в мой проект в Eclipse? –

+0

Javascript? f (x) - математическое обозначение для функции x. Я просто использовал математическую функцию в качестве примера. Это не Javascript. – IanB

Смежные вопросы