Это не имеет значения для размера изображения, код ниже размера будет с идеальным соотношением, он сделает максимальную ширину без разрешения разрешения suck.if вы не хотите максимальной ширины, а затем измените размеры из кода. Вам понадобится пикассо.
private Dimensions getScreenDimensions()
{
DisplayMetrics metrics = new DisplayMetrics();
WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();
display.getMetrics(metrics);
final int widthScreen = metrics.widthPixels;
int heightScreen = metrics.heightPixels;
Dimensions screenDimen = new Dimensions(metrics.widthPixels,metrics.heightPixels); // custom class
return screenDimen;
}
private Bitmap makeCalc(Dimensions screenDimen, Dimensions imageDimen,Bitmap bmp)
{
float widthRatio = screenDimen.getWidth()/imageDimen.getWidth();
float scaledHeight = imageDimen.getHeight() * widthRatio;
imageBmp = Bitmap.createScaledBitmap(bmp, (int)screenDimen.getWidth(), (int) scaledHeight, true);
//image.setImageBitmap(resized);
return imageBmp;
}
public class Dimensions {
float width;
float height;
public Dimensions(float width, float height) {
this.width = width;
this.height = height;
}
public float getHeight() {
return height;
}
public void setHeight(float height) {
this.height = height;
}
public float getWidth() {
return width;
}
public void setWidth(float width) {
this.width = width;
}
}
Target target = new Target() {
@Override
public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
int width = bitmap.getWidth(); // original width
int height = bitmap.getHeight(); // original heigh
Log.w(TAG, "onBitmapLoaded: " + width + " " + height);
Bitmap newBmp = makeCalc(getScreenDimensions(),new Dimensions(width,height),bitmap);
imageView.setImageBitmap(newBmp);
}
@Override
public void onBitmapFailed(Drawable errorDrawable) {
Log.w(TAG, "onBitmapFailed: "+errorDrawable);
}
@Override
public void onPrepareLoad(Drawable placeHolderDrawable) {
Log.w(TAG, "onPrepareLoad: ");
}
};
Picasso.with(this).load(yourURL).into(target);
imageView.setTag(target);
AFAICT, вам нужно будет сделать это вручную. То есть дайте hardcoded width/height вашему 'ImageView' – Sufian
Сделайте свое изображение как« невидимым », а в onResume установите ширину и высоту вашего изображения, а затем установите его как« видимый ». Для этого вам может понадобиться отдельный поток. Надеюсь, он сработает. –
@Mamta Kaundal, когда ваше приложение запущено в это время, вы получите ширину ваших устройств и установите, что на вашем изображении смотрите другой мудрый набор, который в вашей библиотеке piccasso измените размер и высоту –