[android] 프로그래밍 방식으로 TextView 텍스트 중앙에 배치

여기에 약간의 관대함을 간청합니다. 저는 Android SDK 튜토리얼부터 시작하고 있으며 튜토리얼 자체에없는 흥미로운 것을 시도하고 있지만 쉬울 수 있기를 바랍니다.

TextView코드를 통해 수평 및 수직 으로 항목 을 중앙에 배치하려고합니다 (XML로 잘 할 수 있습니다). 부모가 테이블이나 다른 개체 일 때이를 수행하는 방법에 대한 몇 가지 예를 보았지만 이것이 이해하기 더 쉬웠 으면합니다. (ps 내 용어를 자유롭게 수정하십시오).

다음은 튜토리얼 / 내 작업 모델의 예제 코드입니다.

package com.example.myfirstapp;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.ViewGroup.LayoutParams;
import android.widget.TextView;


public class DisplayMessageActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Intent intent = getIntent();
        String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);

        TextView textView = new TextView(this);
        textView.setTextSize(40);
        textView.setText(message);
        textView.setGravity(View.TEXT_ALIGNMENT_GRAVITY);

        setContentView(textView);
    }
}

나는 setGravity방법 을 찾을 수 있었고 그것을 위해 손을 대려고 시도했지만 해결하기 위해 상수를 setLayoutParams얻기 위해 가져와야 할 것을 찾을 수 없기 때문에 범위가 무엇인지 확실하지 않습니다. WRAP_CONTENT. 내가 이해 한 바에 따르면 센터링과 content_wrapping + gravity는 별개의 것입니다. 이 경우에 수행하는 방법에 대한 예제와 API 문서에서 답변을 어떻게 / 어디에서 찾았 을까요?



답변

yourTextView.setGravity(Gravity.CENTER);


답변

다이나믹 센터 용

textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);


답변

TextView text = new TextView(this);

text.setGravity(Gravity.CENTER);

text.setGravity(Gravity.TOP);

text.setGravity(Gravity.BOTTOM);

text.setGravity(Gravity.LEFT);

text.setGravity(Gravity.RIGHT);

text.setGravity(Gravity.CENTER_VERTICAL);

text.setGravity(Gravity.CENTER_HORIZONTAL);

그리고 더 사용 가능


답변

이것은 확실히 작동합니다 ..

RelativeLayout layout = new RelativeLayout(R.layout.your_layour);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.CENTER_IN_PARENT);
params.addRule(LinearLayout.CENTER_IN_PARENT);
textView.setLayoutParams(params);
textView.setGravity(Gravity.CENTER);

layout.addView(textView);

setcontentView(layout);


답변

TextView에 레이아웃 매개 변수를 적용하기 위해 다음 코드를 추가해보십시오.

LayoutParams lp = new LinearLayout.LayoutParams(
                LinearLayout.LayoutParams.WRAP_CONTENT,
                LinearLayout.LayoutParams.WRAP_CONTENT);
lp.addRule(LinearLayout.CENTER_IN_PARENT);
textView.setLayoutParams(lp);


답변

텍스트 크기가 작 으면 텍스트보기의 너비를 “fill_parent”로 만들어야합니다. 그런 다음 TextView Gravity를 center로 설정할 수 있습니다.

TextView textView = new TextView(this);
textView.setText(message);
textView.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
textView.setGravity(Gravity.CENTER);


답변

다음을 사용하여 TextViewKotlin에서 프로그래밍 방식으로 텍스트를 중앙에 배치 할 수 있습니다 .

textview.gravity = Gravity.CENTER