Android: Android에서 Java 측에서 TextView로 중력을 설정하는 방법
사용할 수 있습니다android:gravity="bottom|center_horizontal"
원하는 결과를 얻으려면 텍스트 보기에서 xml로 입력해야 하지만 프로그래밍 방식으로 이 작업을 수행해야 합니다.내 텍스트 보기는 a 안에 있습니다.tablerow
만약 그것이 중요하다면relativelayout
.
시도해 본 결과:
LayoutParams layoutParams = new TableRow.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL);
labelTV.setLayoutParams(layoutParams);
하지만 내가 올바르게 이해했다면, 그것은 그것을 적용할 것입니다.tablerow
텍스트 보기가 아니라구요?
labelTV.setGravity(Gravity.CENTER | Gravity.BOTTOM);
코틀린 버전(토미 덕분)
labelTV.gravity = Gravity.CENTER_HORIZONTAL or Gravity.BOTTOM
또한 중력을 말씀하시는 건가요, 아니면 배치 중력을 말씀하시는 건가요?후자는 상대 레이아웃에서 작동하지 않습니다.
이렇게 하면 텍스트가 텍스트 보기의 중앙에 배치됩니다.
TextView ta = (TextView) findViewById(R.layout.text_view);
LayoutParams lp = new LayoutParams();
lp.gravity = Gravity.CENTER_HORIZONTAL;
ta.setLayoutParams(lp);
우리는 아래와 같은 모든 뷰에 배치 중력을 설정할 수 있습니다.
myView = findViewById(R.id.myView);
myView.setGravity(Gravity.CENTER_VERTICAL|Gravity.RIGHT);
or
myView.setGravity(Gravity.BOTTOM);
이는 아래 xml 코드와 동일합니다.
<...
android:gravity="center_vertical|right"
...
.../>
사용해야 합니다.textView.setGravity(Gravity.CENTER_HORIZONTAL);
.
다음을 사용합니다.
LinearLayout.LayoutParams layoutParams =new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
layoutParams2.gravity = Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL;
작동하지 않습니다.이렇게 하면 위젯의 중력이 설정되고 위젯의 텍스트가 설정되지 않습니다.
이 코드 사용
TextView textView = new TextView(YourActivity.this);
textView.setGravity(Gravity.CENTER | Gravity.TOP);
textView.setText("some text");
textView.setGravity(Gravity.CENTER | Gravity.BOTTOM);
이렇게 하면 텍스트 보기의 중력이 설정됩니다.
몇 가지 작업을 수행하여 이 문제를 해결했습니다. 먼저,height
나의TextView
그리고 텍스트에 따라 그것을 다이빙합니다.size
가능한 총 라인 양을 얻기 위해.TextView
.
int maxLines = (int) TextView.getHeight() / (int) TextView.getTextSize();
이 값을 얻은 후에는 다음 값을 설정해야 합니다.TextView
maxLines
이 새로운 가치로.
TextView.setMaxLines(maxLines);
설정Gravity
로.Bottom
최대 줄 수를 초과하면 자동으로 아래로 스크롤됩니다.
if (TextView.getLineCount() >= maxLines) {
TextView.setGravity(Gravity.BOTTOM);
}
이 작업이 올바르게 작동하려면 다음을 사용해야 합니다.append()
에게TextView
,네가 만약setText()
이것은 작동하지 않을 것입니다.
TextView.append("Your Text");
이 방법의 이점은 다음과 같은 방법에 관계없이 동적으로 사용할 수 있다는 것입니다.height
당신의TextView
그리고 본문size
레이아웃을 수정하기로 결정하더라도 이 코드는 계속 작동합니다.
언급URL : https://stackoverflow.com/questions/3775705/how-set-the-androidgravity-to-textview-from-java-side-in-android
'programing' 카테고리의 다른 글
PowerShell: 특수 문자가 포함된 To-Json 변환 문제 (0) | 2023.09.03 |
---|---|
setFetchSize()는 언제 무엇으로 지정해야 합니까? (0) | 2023.09.03 |
백업 증분 백업 대 복제 (0) | 2023.09.03 |
CSS: 컨테이너의 크기를 변경하지 않고 일부 텍스트를 굵게 표시 (0) | 2023.09.03 |
도커에서 명명된 태그와 최신 태그를 만드는 방법은 무엇입니까? (0) | 2023.09.03 |