[mobile] fix wallpaper scale

pull/123/head
FongMi 3 years ago
parent e346fc6362
commit 875f23e442
  1. 13
      app/src/leanback/java/com/fongmi/android/tv/Product.java
  2. 4
      app/src/main/java/com/fongmi/android/tv/api/WallConfig.java
  3. 17
      app/src/main/java/com/fongmi/android/tv/utils/ImgUtil.java
  4. 19
      app/src/mobile/java/com/fongmi/android/tv/Product.java

@ -17,4 +17,17 @@ public class Product {
public static int getEms() {
return Math.min(ResUtil.getScreenWidth() / ResUtil.sp2px(24), 35);
}
public static byte[] resize(byte[] bytes) {
int width = ResUtil.getScreenWidth();
int height = ResUtil.getScreenHeight();
Bitmap bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
if (bitmap.getWidth() < width && bitmap.getHeight() < height) return bytes;
Matrix matrix = new Matrix();
matrix.postScale((float) width / bitmap.getWidth(), (float) height / bitmap.getHeight());
bitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, false);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
return baos.toByteArray();
}
}

@ -3,13 +3,13 @@ package com.fongmi.android.tv.api;
import android.graphics.drawable.Drawable;
import com.fongmi.android.tv.App;
import com.fongmi.android.tv.Product;
import com.fongmi.android.tv.R;
import com.fongmi.android.tv.bean.Config;
import com.fongmi.android.tv.event.RefreshEvent;
import com.fongmi.android.tv.net.Callback;
import com.fongmi.android.tv.net.OkHttp;
import com.fongmi.android.tv.utils.FileUtil;
import com.fongmi.android.tv.utils.ImgUtil;
import com.fongmi.android.tv.utils.Prefers;
import java.io.File;
@ -84,7 +84,7 @@ public class WallConfig {
private File write(File file) throws IOException {
if (url.startsWith("file")) FileUtil.copy(FileUtil.getLocal(url), file);
else if (url.startsWith("http")) FileUtil.write(file, ImgUtil.resize(OkHttp.newCall(url).execute().body().bytes()));
else if (url.startsWith("http")) FileUtil.write(file, Product.resize(OkHttp.newCall(url).execute().body().bytes()));
else file.delete();
return file;
}

@ -1,8 +1,6 @@
package com.fongmi.android.tv.utils;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Matrix;
import android.text.TextUtils;
import android.view.View;
import android.widget.ImageView;
@ -20,8 +18,6 @@ import com.bumptech.glide.signature.ObjectKey;
import com.fongmi.android.tv.App;
import com.fongmi.android.tv.R;
import java.io.ByteArrayOutputStream;
public class ImgUtil {
public static void load(String url, ImageView view) {
@ -79,17 +75,4 @@ public class ImgUtil {
}
};
}
public static byte[] resize(byte[] bytes) {
int width = ResUtil.getScreenWidth();
int height = ResUtil.getScreenHeight();
Bitmap bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
if (bitmap.getWidth() < width && bitmap.getHeight() < height) return bytes;
Matrix matrix = new Matrix();
matrix.postScale((float) width / bitmap.getWidth(), (float) height / bitmap.getHeight());
bitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, false);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
return baos.toByteArray();
}
}

@ -1,10 +1,14 @@
package com.fongmi.android.tv;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import com.fongmi.android.tv.utils.Prefers;
import com.fongmi.android.tv.utils.ResUtil;
import java.io.ByteArrayOutputStream;
public class Product {
public static int getColumn() {
@ -24,4 +28,19 @@ public class Product {
int height = (int) (width / 0.75f);
return new int[]{width, height};
}
public static byte[] resize(byte[] bytes) {
Bitmap bitmap = crop(BitmapFactory.decodeByteArray(bytes, 0, bytes.length));
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
return baos.toByteArray();
}
private static Bitmap crop(Bitmap bitmap) {
if (bitmap.getWidth() >= bitmap.getHeight()) {
return Bitmap.createBitmap(bitmap, bitmap.getWidth() / 2 - bitmap.getHeight() / 2, 0, bitmap.getHeight(), bitmap.getHeight());
} else {
return Bitmap.createBitmap(bitmap, 0, bitmap.getHeight() / 2 - bitmap.getWidth() / 2, bitmap.getWidth(), bitmap.getWidth());
}
}
}

Loading…
Cancel
Save