簡體   English   中英

ImageView縮放比例類型以在Android中裁剪圖像

[英]ImageView scale type to crop image in Android

我有一張圖片,我想按寬度將其放到整個屏幕上,但要裁剪圖片的頂部,如下所示:

在此處輸入圖片說明

紅色區域是圖像,紅色區域是電話屏幕/父布局。 當然,保持寬高比。 可以用XML代替編程嗎?

好的,您應該執行以下步驟:-

1).  Make Linear Layout
2).  apply the image as background
3).  set the view at top to crop the background of layout.

我想你知道我在說什么。

例如,這是xml:-

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@android:color/white">//background color of your screen
    <LinearLayout
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     android:background="put the resource id of the image you want to crop"
     android:orientation="vertical" >
         <View
          android:layout_width="match_parent"
          android:layout_height="250dp"
          android:background="@android:color/white" // background color of your screen
          />
    </LinearLayout>
</LinearLayout>

請告訴我實施它是否有任何問題。

謝謝享受,...

采用

android:src="@drawable/img"
android:scaleType="fitEnd"  

代替

android:background

fitEnd保留寬高比被寫入此處

最后,我使用自定義視圖解決了我的問題:

public class ResizableImageView extends ImageView {

    public ResizableImageView(Context context) {
        super(context);
    }

    public ResizableImageView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public ResizableImageView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        Drawable drawable = getDrawable();

        if (drawable != null) {
            int width = MeasureSpec.getSize(widthMeasureSpec);
            int diw = drawable.getIntrinsicWidth();
            if (diw > 0) {
                int height = width * drawable.getIntrinsicHeight() / diw;
                setMeasuredDimension(width, height);
                return;
            }
        }

        super.onMeasure(widthMeasureSpec, heightMeasureSpec);

    }

}

並且,XML文件:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_centerHorizontal="true"
    android:layout_margin="0dp"
    android:padding="0dp"
    tools:context=".SplashActivity" >

    <com.xxx.widgets.ResizableImageView
        android:id="@+id/imageSplash"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_margin="0dp"
        android:padding="0dp"
        android:src="@drawable/img_splash"
        tools:ignore="ContentDescription" />

</RelativeLayout>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM