2

そのため、イメージ ビューに設定したイメージをユーザーが上書きできるようにしたいと考えています。画像が設定され、動作します。ユーザーが画像をクリックすると、クリックした場所に [テキストの編集] ボックスが表示されます。ただし、編集テキストの白い背景は背景の画像をブロックします。そこで、編集テキストの背景を透明に設定しました。

    editTextOne.setBackgroundColor(Color.TRANSPARENT);

これは、編集テキストの背景を透明にすることで機能します。ただし、入力を開始しない限り、カーソルも表示されなくなりました。

それで、私が求めているのは、とにかく EditText の背景を透明にする方法があるかどうかですが、カーソルを表示して点滅させることはできますか? どんな助けでも大歓迎です、ありがとう!

コード:

    public boolean onTouch(View view, MotionEvent event){
            if (type == true){
                touchX = (int) event.getX();
                touchY = (int) event.getY();
                RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) editTextOne.getLayoutParams();
                params.leftMargin = touchX;
                params.topMargin = touchY;
                params.addRule(RelativeLayout.ALIGN_PARENT_TOP);
                params.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
                editTextOne.setLayoutParams(params);
                editTextOne.setVisibility(View.VISIBLE);
                editTextOne.bringToFront();
                editTextOne.setBackgroundColor(Color.TRANSPARENT);
                editTextOne.requestFocus();
                editTextOne.setCursorVisible(true);
            }//end of if statement
            return true;
        }//end of onTouch

XML:

  <?xml version="1.0" encoding="utf-8"?>
  <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:id="@+id/relative" >

<Button
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:layout_toLeftOf="@+id/load"
    android:layout_alignParentBottom="true"
    android:layout_margin="10dp"
    android:text="C"
    android:textStyle="bold"
    android:textSize="20dp"
    android:id="@+id/camera"
    android:onClick="camera"/>

<Button
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:layout_toLeftOf="@+id/view"
    android:layout_alignParentBottom="true"
    android:layout_margin="10dp"
    android:id="@+id/load"
    android:text="L"
    android:textStyle="bold"
    android:textSize="20dp"
    android:onClick="load"/>

<Button
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_alignParentBottom="true"
    android:layout_margin="10dp"
    android:text="v"
    android:id="@+id/view"
    android:textStyle="bold"
    android:textSize="20dp"
    android:onClick="view"/>

<Button 
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:layout_toLeftOf="@+id/camera"
    android:layout_alignParentBottom="true"
    android:layout_margin="10dp"
    android:text="T"
    android:textStyle="bold"
    android:textSize="20dp"
    android:id="@+id/text"
    android:onClick="text"/>

<TextView 
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:background="@null"
    android:visibility="invisible"
    android:id="@+id/textone"/>

<EditText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:visibility="invisible"
    android:inputType="textAutoCorrect"
    android:singleLine="true"
    android:id="@+id/edittextone"/>

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:id="@+id/picture"/>

</RelativeLayout>  

編集:カーソルがすぐに表示されない理由はわかりませんが、スペースバーを押すとカーソルが表示されることがわかりました。だから、私が使用した私の問題を解決するために:

     editTextOne.setText(" ");

これにより、最初のテキストとしてスペースが配置されるため、カーソルが表示されます。これが、他の誰かが同様の問題で立ち往生するのに役立つことを願っています。

4

3 に答える 3

1

コードファイルに設定されていない、xmlファイルのeditextプロパティandroid:background="@null"を変更できます。それは私にとってはうまくいきます。

于 2012-10-26T00:54:37.590 に答える
1

まず、カーソルの色を変更したいことを確認したいと思います。それは...ですか ?

そのために:

  • 最小 API を変更します (api < 3.2 の場合)。

  • android api 3.2 以上として設定してください。

  • EditText でプロパティを取得し、android:textCursorDrawable="@null"として設定します

  • text:color を変更すると、テキストの色と同じカーソルの色も設定されます。

これは、最小 API レベルが 3.2 である場合にのみ役立ちます。

于 2012-10-26T07:46:53.083 に答える
0

フォーカスを手動でテキスト ビューに設定してみましたか? ビューを表示したら、requestFocus()を呼び出してみてください。

また、setCursorVisibleメソッドを使用して明示的にカーソルを可視に設定することもできます。

于 2012-10-26T00:41:50.550 に答える