1

を使用してテキストを回転させるコードを書きましたがSurfaceView、これで問題ありません。ここで、前に行ったテキストを編集したいと思いますSurfaceView。がeditText表示され、編集は問題ありませんが、テキストを回転するtextViewと がテキストと一緒に回転しません。

の追加と回転に使用するコードeditTextは次のとおりです。

if(editText!= null)
    relativeLayout.removeView(editText);

else {
    editText = new EditText(MainActivity.this);
    editText.setText(rectF.getText());
    RelativeLayout.LayoutParams params = 
                      new RelativeLayout.LayoutParams((int) rectF.getBounds().width(), 
                                                      (int) rectF.getBounds().height());
    params.leftMargin = (int) rectF.getBounds().left; 
    params.topMargin = (int) rectF.getBounds().top;
    editText.setLayoutParams(params);

    Animation an = new RotateAnimation(0,rectF.getAngle());
    an.setDuration(0);             
    an.setRepeatCount(0);  
    an.setZAdjustment(Animation.ZORDER_TOP);
    an.setFillAfter(true);  
    editText.setAnimation(an);
    relativeLayout.addView(editText);
    editText.requestFocus();

    InputMethodManager imm = (InputMethodManager) getSystemService (Context.INPUT_METHOD_SERVICE);
    imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
    editText.setOnKeyListener( new OnKeyListener() {
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            switch (keyCode) {
            case KeyEvent.KEYCODE_DPAD_CENTER:
            case KeyEvent.KEYCODE_ENTER:
                saveEditText();
                return true;
            }

            return true;
        }

        private void saveEditText() {
            txt2.setText(editText.getText().toString());
            InputMethodManager imm = (InputMethodManager) getSystemService(
                            INPUT_METHOD_SERVICE);
            imm.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);
            relativeLayout.removeView(editText);
        }
    });
}
4

0 に答える 0