2014-07-07 47 views
0

我試圖以編程方式添加imageView,但不要在不同的屏幕上製作相同的大小。我嘗試了很多比例代碼,但沒有任何好的結果。在不同屏幕上的Android ImageView大小

屏:screens' image

這裏是我的代碼:

public class Explore extends Fragment { 

    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState){ 
    View view = inflater.inflate(R.layout.tab, container, false); 

    LinearLayout linearLayout= new LinearLayout(getActivity()); 
    linearLayout.setOrientation(LinearLayout.VERTICAL); 

    linearLayout.setLayoutParams(new LayoutParams(
      LayoutParams.WRAP_CONTENT, 
      LayoutParams.WRAP_CONTENT)); 

    final float scale = view.getContext().getResources().getDisplayMetrics().density; 

    int width = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 250, getResources().getDisplayMetrics()); 
    int height = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 82, getResources().getDisplayMetrics()); 

    int lastWidth = (int) (width * scale + 0.5f); 
    int lastHeight = (int) (height * scale + 0.5f); 

    ImageView imageView = new ImageView(getActivity()); 
    UrlImageViewHelper.setUrlDrawable(imageView, "https://example.com/example.jpg"); 

    LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(lastWidth, lastHeight); 
    imageView.setLayoutParams(lp); 


    linearLayout.addView(imageView); 

    return linearLayout; 
    } 

} 
+0

之前,所以你的問題是什麼? – BugaIulian

+0

請點擊屏幕鏈接並聚焦紅色箭頭。 – mess34

回答

0

看起來問題不是要添加圖像的ImageView但大小。您觀察到相同圖像的顯示方式不同,具體取決於顯示屏幕的屬性。但是,目標是正確顯示或縮放圖像位圖本身,而不依賴於ImageView的大小。

例如,如果您要使用XML添加此ImageView,則存在一個名爲android:scaleType的屬性,該屬性控制圖像在ImageView內的顯示方式。根據如何設置此屬性,ImageView將保留所需的大小,但將內容縮放以適合其範圍。

這個屬性也可以set programatically

imageView.setScaleType(ImageView.SCALE_TYPE); 

你應該考慮尋找到不同規模類型看是否符合您的需求。如果沒有,還有其他方法create thumbnail或其他方式設置您的ImageView

+0

感謝您的回覆。我無法修復。我嘗試了所有setScaleType類型但沒有任何結果。我如何修復我的代碼? – mess34

+0

我將首先擺脫您在圖像視圖中進行的手動縮放。什麼是UrlImageViewHelper?你能告訴我那個方法的代碼嗎? – Rarw

+0

我認爲它是一個基本的圖書館。 https://github.com/koush/UrlImageViewHelper – mess34

相關問題