问题描述
我想知道为什么我的壁纸尺寸在主屏幕上变大了,但它在锁屏上很合适,请帮我解决这个问题,这是我的第一个项目,我是 android 开发的新手,我在 youtube 上搜索过,但是我没有得到任何关于它的代码:
public class FullImageActivity extends AppCompatActivity {
private ImageView fullImage;
private Button buttonHomeScreen,buttonLockScreen;
WallpaperManager wallpaperManager;
Bitmap bitmap;
displayMetrics displayMetrics;
BitmapDrawable bitmapDrawable;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_full_image);
getwindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
getSupportActionBar().hide();
fullImage = findViewById(R.id.fullImage);
buttonHomeScreen = findViewById(R.id.setHomeScreen);
buttonLockScreen = findViewById(R.id.setLockScreen);
Glide.with(this).load(getIntent().getStringExtra("image")).centerCrop().into(fullImage);
buttonHomeScreen.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setWallpaper("Home");
}
});
buttonLockScreen.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setWallpaper("Lock");
}
});
}private void setWallpaper(String type) {
int[] size = getScreenSize();
wallpaperManager = WallpaperManager.getInstance(getApplicationContext());
bitmapDrawable = (BitmapDrawable) fullImage.getDrawable();
bitmap = bitmapDrawable.getBitmap();
bitmap = Bitmap.createScaledBitmap(bitmap,size[0],size[1],false);
try {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
if (type.equals("Lock")) {
wallpaperManager.setBitmap(bitmap,null,true,WallpaperManager.FLAG_LOCK);
Toast.makeText(this,"Lock Screen Wallpaper Set",Toast.LENGTH_SHORT).show();
} else {
wallpaperManager.setBitmap(bitmap,WallpaperManager.FLAG_SYstem);
Toast.makeText(this,"Home Screen Wallpaper Set",Toast.LENGTH_SHORT).show();
}
wallpaperManager.suggestDesiredDimensions(size[0],size[2]);
} else {
wallpaperManager.setBitmap(bitmap);
Toast.makeText(this,"Wallpaper Set",size[2]);
} catch (Exception e) {
e.printstacktrace();
}
}
private int[] getScreenSize() {
displayMetrics = new displayMetrics();
getwindowManager().getDefaultdisplay().getMetrics(displayMetrics);
int[] size = new int[2];
size[0] = displayMetrics.widthPixels;
size[1] = displayMetrics.heightPixels;
return size;
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)