Set wallpaper using resource inside APK - Apk Apps For you

Apk Apps For you

Foxi apk download latest version for Android,fifa 20 download for Android,fifa 20 download,mobile games,games download,Android games free download apk

Click here to download

Search This Blog

2 > 3 4

Tuesday, March 15, 2016

Set wallpaper using resource inside APK


This example modify from the post "Restore default build-in wallpaper", to add function to set wallpaper using resource inside APK.


Create /res/raw/ folder in your Android Studio project. Refer: Android Studio error: Expected resource of type raw

Modify layout/activity_main.xml to add button to "Load Wallpaper from from Resources".
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="16dp"
android:orientation="vertical"
tools:context="com.blogspot.android_er.androidwallpaper.MainActivity">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:autoLink="web"
android:text="http://android-er.blogspot.com/"
android:textStyle="bold" />
<Button
android:id="@+id/displaywp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Display Wallpaper"/>
<Button
android:id="@+id/loadwp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Load Wallpaper from Gallery"/>
<Button
android:id="@+id/loadwpres"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Load Wallpaper from from Resources"/>

<Button
android:id="@+id/restorewp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Restore default Wallpaper"/>
<ImageView
android:id="@+id/image"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>


MainActivity.java
package com.blogspot.android_er.androidwallpaper;

import android.app.Activity;
import android.app.WallpaperManager;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;

import java.io.FileNotFoundException;
import java.io.IOException;

public class MainActivity extends AppCompatActivity {

ImageView imageWallpaper;
Button btnLoadWallpaper, btnDisplayWallpaper, btnRestoreWallpaper;
Button btnLoadWallpaperRes;

private static final int RQS_OPEN_IMAGE = 1;

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

imageWallpaper = (ImageView)findViewById(R.id.image);

btnDisplayWallpaper = (Button)findViewById(R.id.displaywp);
btnDisplayWallpaper.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
displayWallpaper();
}
});

btnLoadWallpaper = (Button)findViewById(R.id.loadwp);
btnLoadWallpaper.setOnClickListener(btnLoadWallpaperOnClickListener);

btnRestoreWallpaper = (Button)findViewById(R.id.restorewp);
btnRestoreWallpaper.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
WallpaperManager myWallpaperManager =
WallpaperManager.getInstance(getApplicationContext());
try {
myWallpaperManager.clear();
} catch (IOException e) {
e.printStackTrace();
}
}
});

btnLoadWallpaperRes = (Button)findViewById(R.id.loadwpres);
btnLoadWallpaperRes.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
WallpaperManager myWallpaperManager =
WallpaperManager.getInstance(getApplicationContext());
try {
myWallpaperManager.setResource(R.raw.androidstudio);
} catch (IOException e) {
e.printStackTrace();
}

}
});


displayWallpaper();

}

View.OnClickListener btnLoadWallpaperOnClickListener = new View.OnClickListener() {

@Override
public void onClick(View v) {
Intent intent = new Intent();

if (Build.VERSION.SDK_INT >=
Build.VERSION_CODES.KITKAT) {
intent.setAction(Intent.ACTION_OPEN_DOCUMENT);
} else {
intent.setAction(Intent.ACTION_GET_CONTENT);
}

intent.addCategory(Intent.CATEGORY_OPENABLE);

// set MIME type for image
intent.setType("image/*");

startActivityForResult(intent, RQS_OPEN_IMAGE);
}
};

private void displayWallpaper(){
WallpaperManager myWallpaperManager =
WallpaperManager.getInstance(getApplicationContext());
Drawable drawableWallpaper = myWallpaperManager.getDrawable();
imageWallpaper.setImageDrawable(drawableWallpaper);

Toast.makeText(this,
drawableWallpaper.getMinimumWidth() + " x " + drawableWallpaper.getMinimumHeight()
+ "\n" +
drawableWallpaper.getIntrinsicWidth() + " x " + drawableWallpaper.getIntrinsicHeight(),
Toast.LENGTH_LONG).show();
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == Activity.RESULT_OK) {
if (requestCode == RQS_OPEN_IMAGE) {
Uri dataUri = data.getData();
Uri wallpaperUri = dataUri;
Toast.makeText(this, wallpaperUri.toString(), Toast.LENGTH_LONG).show();

Bitmap newOriginalBM= loadBitmap(dataUri);
reloadWallpaper(newOriginalBM);
}
}
}

private Bitmap loadBitmap(Uri src) {

Bitmap bm = null;

try {
bm = BitmapFactory.decodeStream(
getBaseContext().getContentResolver().openInputStream(src));
} catch (FileNotFoundException e) {
e.printStackTrace();
}

return bm;
}

private void reloadWallpaper(Bitmap bm){
if(bm != null){
WallpaperManager myWallpaperManager =
WallpaperManager.getInstance(getApplicationContext());

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if(myWallpaperManager.isWallpaperSupported()){
try {
myWallpaperManager.setBitmap(bm);
} catch (IOException e) {
e.printStackTrace();
}
}else{
Toast.makeText(MainActivity.this,
"isWallpaperSupported() NOT SUPPORTED",
Toast.LENGTH_LONG).show();
}
}else{
try {
myWallpaperManager.setBitmap(bm);
} catch (IOException e) {
e.printStackTrace();
}
}
}else{
Toast.makeText(MainActivity.this, "bm == null", Toast.LENGTH_LONG).show();
}
}
}


uses-permission of "android.permission.SET_WALLPAPER" is needed.

No comments:

Post a Comment

Featured Post

Stumble Guys MOD APK 0.54.2

Popular Posts

Advertisement

2 > 3 4