2013-09-06 6 views
0

Iam new для android.I хочу прочитать текст, написанный в прямоугольнике, нарисованном в canvas.I знаю, что drawText() используется для написания текста, есть ли способ прочитать текст ? Заранее спасибочтение текста из прямоугольника canvas в android

+0

Если вы хотите написать текст внутри прямоугольника, я бы предложил вам использовать TextView. Вы можете прочитать текст, написанный в TextView, с помощью метода getText(). – edisonthk

ответ

1

Если вы просто хотите написать текст внутри прямоугольника. Это будет лучше всего использовать TextView вместо canvas.drawText.

Если вы хотите использовать drawText. Вот этот метод. Во-первых, создайте класс CustomView.

public class CustomView extends View{ 

    String text; 
    private Paint paint; 

    public CustomView(Context context, AttributeSet attrs) { 
     super(context, attrs); 
     paint = new Paint(); 
     paint.setColor(Color.BLACK); 
    } 

    public void setText(String text){ 
     this.text = text; 
     invalidate(); 
    } 

    @Override 
    public void onDraw(Canvas canvas){ 
     canvas.drawText(text, 20, 20, paint);  
     super.onDraw(canvas); 
    } 

} 

В activitiy_main.xml объявите, как показано ниже. В этом случае вы нарисуете 2 прямоугольника. Не забудьте установить разные идентификаторы для каждого прямоугольника.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

    <com.example.apps1.CustomView 
     android:id="@+id/custom_view_1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"/> 

    <com.example.apps1.CustomView 
     android:id="@+id/custom_view_2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"/>  

</LinearLayout> 

Затем найдите мнение по данному идентификатору на выше в MainActivity и написать текст, который вы хотите установить в вашем прямоугольнике.

public class MainActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     String view1Text = "First rectangle"; 
     String view2Text = "Second rectangle"; 

     CustomView customView1 = (CustomView)findViewById(R.id.custom_view_1); 
     CustomView customView2 = (CustomView)findViewById(R.id.custom_view_2); 
     customView1.setText(view1Text); 
     customView2.setText(view2Text); 

     // get text from customView1 and customView2 
     String textOnCustomView1 = customView1.text; 
     String textOnCustomView2 = customView2.text; 
    } 

} 

Таким образом, вы можете прочитать текст, который вы пишете в прямоугольник.

+0

как использовать это, когда я рисую более одного прямоугольника и вставляю текст в один прямоугольник, прикоснувшись к этому конкретному прямоугольнику и как читать введенные в него значения. – wudpecker

+0

Похоже, что вы очень новичок в Android. Я предлагаю вам прежде, чем попытаться нарисовать прямоугольник, сделайте некоторую практику, как добавить представление. Всякий раз, когда я обновляю свой код. Надеюсь, вы сможете это понять. – edisonthk

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