Programing

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

crosscheck 2020. 10. 11. 09:08
반응형

프로그래밍 방식으로 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);

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

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 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);

그리고 더 사용 가능


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);

You can use the following to programmatically center TextView text in Kotlin:

textview.gravity = Gravity.CENTER

try this method

  public void centerTextView(LinearLayout linearLayout) {
    TextView textView = new TextView(context);
    textView.setText(context.getString(R.string.no_records));
    textView.setTypeface(Typeface.DEFAULT_BOLD);
    textView.setGravity(Gravity.CENTER);
    textView.setTextSize(18.0f);
    textView.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT));
    linearLayout.addView(textView);
}

참고URL : https://stackoverflow.com/questions/12775743/programmatically-center-textview-text

반응형