ورود

View Full Version : مشکل در انجام کار مورد نظر



shs1377
سه شنبه 17 دی 1392, 13:03 عصر
سلام دوستان من یک برنامه ساختم که یک عکس رو توی sdcard با زدن دکمه والپیپر میکنه به طوری که با زدن دکمه برنامه گالری باز میشه و عکس رو کراپ میکنه و بعد اون رو والپیپر میکنه

الان من مشکلی که دارم اینه که عکس به عنوان والپیپر تنظیم نمیشه مشکل سورس کدم چیه ؟؟؟:متفکر:

اینم سورس کدم

package ir.wall;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.MalformedURLException;

import android.app.Activity;
import android.app.WallpaperManager;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.Bitmap.CompressFormat;
import android.graphics.BitmapFactory;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;

public class MainActivity extends Activity {

File f;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

f = new File(Environment.getExternalStorageDirectory(), "wall.png");
final Uri imageUri = Uri.fromFile(f);
Button set = (Button) findViewById(R.id.btn);
final WallpaperManager localWallpaperManager = WallpaperManager.getInstance(this);
set.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {


Intent localIntent = new Intent("com.android.camera.action.CROP");

localIntent.setDataAndType(imageUri, "image/PNG");
localIntent.putExtra("outputX", localWallpaperManager.getDesiredMinimumWidth());
localIntent.putExtra("outputY", localWallpaperManager.getDesiredMinimumHeight());
localIntent.putExtra("aspectX", localWallpaperManager.getDesiredMinimumWidth());
localIntent.putExtra("aspectY", localWallpaperManager.getDesiredMinimumHeight());
localIntent.putExtra("scale", true);
localIntent.putExtra("noFaceDetection", true);
localIntent.putExtra("setWallpaper", true);
startActivityForResult(localIntent, 0);}});}}

hamedjj
سه شنبه 17 دی 1392, 17:42 عصر
فکر کنم باید از این کد استفاده کنی :

android.intent.action.SET_WALLPAPER

چون می خوای به عنوان والپیپر تنظیم کنی ولی تو داری دستور برش تصویر را فقط میدی
دستور والپیپر بدی خود برنامه گالری عکس را برای crop میده

این لینک را ببین
http://stackoverflow.com/questions/18700161/android-set-wallpaper-using-intent

اجازه تنظیم والپیپر هم نباید فراموش شود:
<uses-permission android:name="android.permission.SET_WALLPAPER"/>

نمی دونم شایدم دارم اشتباه می کنم