【发布时间】:2014-05-28 00:35:50
【问题描述】:
我正在创建应用程序以将图像设置为墙纸。我正在使用以下代码来修复每个屏幕中的图像。代码工作正常。图像适合。但是如果我玩任何游戏然后回到主屏幕或者我重新启动我的设备然后壁纸缩放大小,我就会遇到一个问题。我想阻止这一切。我希望图像尺寸适合我第一次从我的 Android 应用设置壁纸时的尺寸。
这是代码-
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.full_image);
face = Typeface.createFromAsset(getAssets(), "fonts/ABEAKRG.TTF");
Intent i = getIntent();
position = i.getExtras().getInt("id");
full = (LinearLayout) findViewById(R.id.full);
btn = (Button)findViewById(R.id.btn);
btn.setTypeface(face);
btn.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View arg0) {
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int height = metrics.heightPixels;
int width = metrics.widthPixels;
Bitmap tempbitMap = BitmapFactory.decodeResource(getResources(), mThumbId[position]);
Bitmap bitmap = Bitmap.createScaledBitmap(tempbitMap,width,height, true);
WallpaperManager wallpaperManager = WallpaperManager.getInstance(FullImageActivity.this);
wallpaperManager.setWallpaperOffsetSteps(1, 1);
wallpaperManager.suggestDesiredDimensions(width, height);
try {
wallpaperManager.setBitmap(bitmap);
Toast.makeText(getApplicationContext(), "Done", Toast.LENGTH_SHORT).show();
} catch (IOException e) {
e.printStackTrace();
}
}});
changeBackground();
ActivitySwipeDetector activitySwipeDetector = new ActivitySwipeDetector(this);
full.setOnTouchListener(activitySwipeDetector);
}
private void changeBackground(){
full.setBackgroundResource(mThumbId[position]);
}
提前致谢。
【问题讨论】: