내 액티비티 중 하나에서 런타임에 맞춤 클래스를 통해 추가되는 셀이있는 표 레이아웃이 있습니다. 의 디스플레이로 사용되는 런타임에 예기치 않게 변경되는 Android ImageView 크기
public Cell(Context context) {
super(context);
addView(((LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE))
.inflate(R.layout.gallery_row_1, null));
}
내가 셀을 팽창
, 나는 또한 설정 이미지 :<TableRow xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+cell/style_2"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginBottom="5dp" >
<View
android:id="@+cell/divider"
android:layout_width="fill_parent"
android:layout_height="2dp"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:background="#FF000000" />
<ImageView
android:id="@+cell/image"
android:layout_width="fill_parent"
android:layout_height="100dp"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_below="@cell/divider"
android:layout_margin="5dp"
android:contentDescription="@string/row_thumbnail"
android:scaleType="fitCenter"/>
</RelativeLayout>
</TableRow>
이것은 다음 클래스에 의해 팽창됩니다 다음과 같이 내 세포의 레이아웃입니다 문제는 이미지 뷰의 크기가 그대로 유지되지 않고 오른쪽 가장자리가 보이지 않으며 이미지가 표시되지 않는다는 것입니다 (어딘가에있는 경우 일 수 있습니다). 문제가 어디에서 발생했는지 확신 할 수 없습니다. 거짓말.
c = new Cell(this);
c.getImageView().setImageBitmap(BitmapFactory.decodeStream(assetManager.open("categories" + File.separator + sec + File.separator + filename)));
page.addView(c);
getImageView
은 실제 ImageView 요소를 반환하는 내 Cell의 함수입니다.
이미지가 ImageView에 배치된다는 것을 알고 있습니다. 레이아웃 매개 변수가 변경되면 이미지가 제대로 표시되지 않기 때문에 적절하게 크기가 조정되지 않았기 때문입니다.
원하는 출력은 뷰, 상단의 분할보기 및 아래의 ImageView이어야하며 부모를 채우며 100dp의 높이 여야합니다. 이미지는 원래 크기와 상관없이 크기를 조정하고 내부에 표시해야합니다.
또한 ImageView에 이미지를 설정 한 행을 주석 처리하면 Show Layout Bounds
으로 볼 때 레이아웃 경계가 정확합니다.
전반적인 질문은 왜 이미지를 적용 할 때 ImageView의 크기가 조정되는지입니다.
모든 도움을 주시면 대단히 감사하겠습니다.
나는 당신을 사랑합니다. 감사! : D 나는 모든 것이 올바르게 자리 잡도록 노력하는 XML 설정으로 2 시간 동안 놀았다. –