Я пытаюсь setwallpaper из моего класса, который расширяет видимость суперкласса, я пытаюсь преобразовать представление в растровое изображение, но я получаю сообщение об ошибке (NullPointerException).setwallpaper из класса, который расширяет вид
case R.id.wallpaper: // This is an event of my button
View view = new CustomWallpaper(this);
b = convertToBitmap(view);
WallpaperManager myWallpaperManager
= WallpaperManager.getInstance(getApplicationContext());
try {
myWallpaperManager.setBitmap(b);
new CustomToast(context, "Wallpaper has been set").show();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
break;
и это мой метод
private Bitmap convertToBitmap(View view) {
// TODO Auto-generated method stub
Bitmap viewCapture = null;
view.setDrawingCacheEnabled(true);
viewCapture = Bitmap.createBitmap(view.getDrawingCache());
view.setDrawingCacheEnabled(false);
return viewCapture;
}
И это мой класс, который расширяет вид
public class CustomWallpaper extends View {
public CustomWallpaper(Context context) {
super(context);
// TODO Auto-generated constructor stub
setBackgroundColor(Color.BLACK);
LayoutParams params = new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT);
setLayoutParams(params);
}
@SuppressLint("DrawAllocation")
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
Paint paint = new Paint();
paint.setColor(Color.RED);
canvas.drawCircle(50, 50, 30, paint);
}
}
Спасибо
Разместите LogCat на то, где вы получили исключения нулевого указателя .. – Piyush
После добавления кода, который размещен здесь Mac_Focha я получаю эту ошибку: 12-03 12: 27: 42.336: E/AndroidRuntime (3526): FATAL EXCEPTION: main 12-03 12: 27: 42.336: E/AndroidRuntime (3526): java.lang.IllegalArgumentException: ширина и высота должны быть> 0 12-03 12: 27: 42.336: E/AndroidRuntime (3526): at android.graphics.Bitmap.createBitmap (Bitmap.java:687) 12-03 12: 27: 42.336: E/AndroidRuntime (3526): \t at android.graphics.Bitmap.createBitmap (Bitmap .java: 666) 12-03 12: 27: 42.336: E/AndroidRuntime (3526): \t at android.graphics. Bitmap.createBitmap (Bitmap.java:633) 12-03 12: 27: 42.336: E/AndroidRuntime (3526): – Dardan
вы создаете новый CustomView в OnClick. Этот недавно созданный View не привязан к окну. получите ссылку CustomView, которая прикреплена к окну Activity и ваша работа над этим –