How to Scale an Image in ImageView to Keep the Aspect Ratio in Android?
ImageView is used to display image resources like BitMap or Drawables. ImageView class or android.widget.ImageView inherits the android.view.View class which is the subclass of Kotlin.any_class. Application of ImageView is also in applying tints to an image in order to reuse a drawable resource and create overlays on background images. Moreover, ImageView is also used to control the size and movement of an image. To know more about ImageView, refer to ImageView in Android with Example.
Step by Step Implementation
To keep the Aspect Ratio of the image, use the following steps to Scale the image:
Step 1: Create a New Project in Android Studio
To create a new project in Android Studio please refer to How to Create/Start a New Project in Android Studio. The code for that has been given in both Java and Kotlin Programming Language for Android.
Step 2: Working with the XML Files
Next, go to the activity_main.xml file, which represents the UI of the project. Below is the code for the activity_main.xml file. Comments are added inside the code to understand the code in more detail. Import any logo to display in app:srcCompat=”@drawable/<your_image>”.
XML
<? xml version = "1.0" encoding = "utf-8" ?> < androidx.constraintlayout.widget.ConstraintLayout xmlns:android = "http://schemas.android.com/apk/res/android" android:layout_width = "match_parent" android:layout_height = "match_parent" tools:context = ".MainActivity" > <!-- 1. here layout_centerInParent makes image at center 2. adjustViewBounds adjusts the bounds of the ImageView control to maintain the aspect ratio of the image displayed through it. 3. scaleType used to scale the image throughout the ImageView --> < ImageView android:id = "@+id/imageView" android:layout_width = "fill_parent" android:layout_height = "fill_parent" android:layout_centerInParent = "true" android:adjustViewBounds = "true" android:scaleType = "fitXY" app:srcCompat = "@drawable/gfglogo" tools:ignore = "MissingConstraints" /> </ androidx.constraintlayout.widget.ConstraintLayout > |
Step 3: Working with the MainActivity File
Go to the MainActivity File and refer to the following code. Below is the code for the MainActivity File. Comments are added inside the code to understand the code in more detail.
Kotlin
import android.graphics.Color import android.graphics.drawable.ColorDrawable import android.os.Bundle import androidx.appcompat.app.AppCompatActivity class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super .onCreate(savedInstanceState) setContentView(R.layout.activity_main) // for changing the background color of title bar val aBar = supportActionBar val cd = ColorDrawable(Color.parseColor( "#FF00FF00" )) aBar?.setBackgroundDrawable(cd) } } |
Java
import android.graphics.Color import android.graphics.drawable.ColorDrawable import android.os.Bundle import androidx.appcompat.app.ActionBar import androidx.appcompat.app.AppCompatActivity; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.activity_main); // for changing the background color of title bar ActionBar aBar = getSupportActionBar(); ColorDrawable cd = new ColorDrawable(Color.parseColor( "#FF00FF00" )); if (aBar != null ) { aBar.setBackgroundDrawable(cd); } } } |
Please Login to comment...