의 일부로 ProgressBar
을 사용 중입니다. 이제, ProgressBar
의 값에 따라 ProgressBar
의 너비를 표시하려고합니다.이 값은 화면을 기반으로합니다.
예 : 진행 값이 100이면 장치 화면의 너비가 100 %이고 모든 0-100 값의 너비가 같아야합니다.
내 코드는 다음과 같습니다 :
layout.xml :진행률 및 장치 화면 기준에 따라 진행 바의 너비 설정
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:layout_marginTop="3dp" >
<ProgressBar
android:id="@+id/pbTopicAccuracy"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="fill_parent"
android:layout_height="20dp" />
<TextView
android:id="@+id/tvAccuracy"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignBottom="@id/pbTopicAccuracy"
android:layout_alignLeft="@id/pbTopicAccuracy"
android:layout_alignTop="@id/pbTopicAccuracy"
android:paddingLeft="5dp"
android:textColor="@color/black"
android:textSize="12sp" />
</RelativeLayout>
자바 코드 :
adapter.setViewBinder(new SimpleAdapter.ViewBinder() {
@Override
public boolean setViewValue(View view, Object data, String textRepresentation) {
if (view.getId() == R.id.pbTopicAccuracy) {
int value = Integer.parseInt(data.toString());
((ProgressBar) view).setProgress(value);
view.setBackgroundResource(R.drawable.report);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(value, 30);
((ProgressBar) view).setLayoutParams(params);
}
}
});
그것은 잘 작동하지만, 그것은 폭을 설정하지 않습니다 그것이 당연히 있어야한다. 값이 100이면 장치 화면의 4.5 부분과 같이 너비를 설정합니다.
이 문제를 방지하고 적절한 너비를 얻으려면 어떻게해야합니까?
아니, 다른 것입니다. 이 RelativeLayout가 LinearLayout의 부모이기 때문입니다. –
문제의 스크린 샷을 만들 수 있습니까? –