[英]Android ImageView scaling conflict
我在代碼中創建ImageView
:
ImageView vlogo = new ImageView(v.getContext());
RelativeLayout.LayoutParams vlogoParams = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
vlogoParams.addRule(RelativeLayout.ALIGN_TOP,tv_visitor.getId());
vlogoParams.addRule(RelativeLayout.ALIGN_LEFT, tv_visitor.getId());
vlogoParams.addRule(RelativeLayout.ALIGN_BOTTOM, tv_visitor.getId());
vlogo.setLayoutParams(vlogoParams);
vlogo.setImageResource(R.drawable.star);
rl.addView(vlogo);
通過將圖像與先前創建的tv_visitor視圖(已添加到相對布局)的TOP
和BOTTOM
對齊來“縮放”圖像。 但我認為它還沒有布局(?)。 .requestLayout就在這段代碼沒有改變之前。
通過這樣做,我將ImageView的高度設置為tv_visitor視圖的高度。 哪個可以。 然而寬度似乎保持原始。
這就是問題所在。 寬度保持不縮放。 我這樣做的方法是制作.setAdjustViewBounds(true); 不工作 那我該怎么辦呢?
根據評論中的要求,我提供了更多信息:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/news_scrollView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ff000000"
android:scrollbars="none">
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/fragment_news2">
<View
android:id="@+id/anchor_n"
android:layout_width="0dp"
android:layout_height="0dp"
android:background="#ffbb00"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true" />
</RelativeLayout>
</ScrollView>
視圖作為參數傳遞,布局通過以下方式獲得:
RelativeLayout rl = (RelativeLayout) v.findViewById(R.id.fragment_news2);
問題是由於Imageview
的縮放,因為默認情況下imageview使用的是ImageView.ScaleType.FIT_CENTER
。 根據文檔,FIT_CENTER執行以下操作:
計算將保持原始src寬高比的比例,但也將確保src完全適合dst。 至少一個軸(X或Y)將完全適合。 結果集中在dst內 。
由於圖像被調整大小並居中,因此您在左側和右側都看到了額外的空間。 為了避免將ScaleType設置為ImageView.ScaleType.FIT_END
而將結果右對齊將解決問題。
vlogo.setScaleType(ImageView.ScaleType.FIT_END);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.