安卓系统:通过程序旋转按钮内的文本



{Visual Aid}我正在制作一个带有拖放菜单的应用程序。用户可以填写三个编辑文本(宽度、高度和旋转(,然后按下"添加新"按钮,在原点创建一个具有指定值的新按钮。但是,如果旋转属性不是0,比如说45度,那么它会将整个按钮与文本一起旋转。我希望文本保持水平,不旋转。我已经查过了,但帖子都引用了我已经使用的旋转属性。

onViewCreated((

tvAddTable = view.findViewById(R.id.btn_add_table);
tvWidth = view.findViewById(R.id.et_width);
tvHeight = view.findViewById(R.id.et_height);
tvRotation = view.findViewById(R.id.et_rotation);
mSize = new Point();
mDisplay = Objects.requireNonNull(getActivity()).getWindowManager().getDefaultDisplay();
mDisplay.getSize(mSize);
final View.OnTouchListener touchListener = this;
tvAddTable.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {[enter image description here][1]
ConstraintLayout layout = view.findViewById(R.id.floor_layout);
//set the properties for button
Button btnTag = new Button(getContext());
btnTag.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
if(ids.isEmpty()){
ids.add(0);
}else{
ids.add(ids.size());
}
btnTag.setId(ids.size());
btnTag.setText(Integer.toString(btnTag.getId()));
//add button to the layout
layout.addView(btnTag);
btnTag.setLayoutParams(new ConstraintLayout.LayoutParams(Integer.parseInt(tvWidth.getText().toString()), Integer.parseInt(tvHeight.getText().toString())));
btnTag.setRotation(Integer.parseInt(tvRotation.getText().toString()));
btnTag.setOnTouchListener(touchListener);
}
});

旋转属性旋转整个视图,而不仅仅是文本或背景。这是故意的。没有文本或背景旋转属性。如果需要,请创建自定义视图。

如果只想旋转背景,可以通过将背景可绘制设置为包裹所需背景的RotateDrawable来实现。

相关内容

  • 没有找到相关文章

最新更新