安卓入门:设置壁纸 [英] Android Beginner: Setting Wallpaper

查看:150
本文介绍了安卓入门:设置壁纸的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是初学者所以请大家多多包涵。我创建了一个应用程序,让您可以滚动壁纸的选择,选择一个。一切完美,但是Android只设置左下角为墙纸...墙纸尺寸为640×960。

这是我的code:

 进口java.io.IOException异常;
进口的java.io.InputStream;

进口android.app.Activity;
进口android.app.AlertDialog;
进口android.content.DialogInterface;
进口android.content.Intent;
进口android.graphics.Bitmap;
进口android.graphics.BitmapFactory;
进口android.net.Uri;
进口android.os.Bundle;
进口android.view.View;
进口android.view.View.OnClickListener;
进口android.widget.Button;
进口android.widget.Horizo​​ntalScrollView;
进口android.widget.ImageView;
进口android.widget.LinearLayout;

公共类壁纸延伸活动实现OnClickListener {

    按钮preVIEW;
    按钮的setBackground;
    按钮returnBack;

    ImageView的显示;
    ImageView的wallpaper1;
    ImageView的wallpaper2;
    ImageView的wallpaper3;
    ImageView的wallpaper4;

    的LinearLayout背景preVIEW;
    私人诠释图像= R.drawable.wallpaper1;
    Horizo​​ntalScrollView滚动视图;

    @覆盖
    保护无效的onCreate(包savedInstanceState){
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.wallpapers);

        preVIEW =(按钮)findViewById(R.id.wallpaper preVIEW);
        的setBackground =(按钮)findViewById(R.id.wallpaperSet);
        returnBack =(按钮)findViewById(R.id.wallpaperReturn);
            preview.setOnClickListener(本);
            setBackground.setOnClickListener(本);
            returnBack.setOnClickListener(本);

        显示器=(ImageView的)findViewById(R.id.wallpaperDisplay);
        wallpaper1 =(ImageView的)findViewById(R.id.wallpaper1);
        wallpaper2 =(ImageView的)findViewById(R.id.wallpaper2);
        wallpaper3 =(ImageView的)findViewById(R.id.wallpaper3);
        wallpaper4 =(ImageView的)findViewById(R.id.wallpaper4);
            wallpaper1.setOnClickListener(本);
            wallpaper2.setOnClickListener(本);
            wallpaper3.setOnClickListener(本);
            wallpaper4.setOnClickListener(本);

        背景preVIEW =(的LinearLayout)findViewById(R.id.wallpaperActivityLayout);
        滚动视图=(Horizo​​ntalScrollView)findViewById(R.id.horizo​​ntalScrollView);

    }

    公共无效的onClick(视图v){
        开关(v.getId()){
        案例R.id.wallpaper preVIEW:
            previewBackground(图像);
            打破;
        案例R.id.wallpaperSet:
            新AlertDialog.Builder(本)
                .setMessage(你想设置此图片作为壁纸?)
                .setPositiveButton(是,新DialogInterface.OnClickListener(){
                    公共无效的onClick(DialogInterface对话,诠释它){
                        InputStream的是= getResources()openRawResource(图像)。
                        位图墙纸= BitmapFactory.de codeStream(是);

                        尝试{
                            getApplicationContext()setWallpaper(墙纸)。
                        }赶上(IOException异常E){
                            e.printStackTrace();
                        }
                    }
                })
                .setNegativeButton(否,空)
                。显示();

            打破;
        案例R.id.wallpaperReturn:
            相反();
            打破;
        案例R.id.wallpaper1:
            display.setImageResource(R.drawable.wallpaper1);
            图像= R.drawable.wallpaper1;
            打破;
        案例R.id.wallpaper2:
            display.setImageResource(R.drawable.wallpaper2);
            图像= R.drawable.wallpaper2;
            打破;
        案例R.id.wallpaper3:
            display.setImageResource(R.drawable.wallpaper3);
            图像= R.drawable.wallpaper3;
            打破;
        案例R.id.wallpaper4:
            display.setImageResource(R.drawable.wallpaper4);
            图像= R.drawable.wallpaper4;
            打破;
        }

    }

    私人无效previewBackground(INT图像){
        背景preview.setBackgroundResource(图像);
        setBackground.setVisibility(View.GONE);
        preview.setVisibility(View.GONE);

        display.setVisibility(View.GONE);
        scrollView.setVisibility(View.GONE);

        returnBack.setVisibility(View.VISIBLE);
    }

    私人无效反向(){
        背景preview.setBackgroundResource(android.R.color.black);
        setBackground.setVisibility(View.VISIBLE);
        preview.setVisibility(View.VISIBLE);

        display.setVisibility(View.VISIBLE);
        scrollView.setVisibility(View.VISIBLE);

        returnBack.setVisibility(View.GONE);
    }
}
 

解决方案

 公共无效的setBackground(INT URL){

    尝试 {
        档案文件=新的文件(/ SD卡/ sampleimage);
        点阵位图= BitmapFactory.de codeResource(getResources(),URL);
        bitmap.com preSS(比较pressFormat.JPEG,80,新的FileOutputStream(文件));
        上下文的背景下= this.getBaseContext();
        context.setWallpaper(位);
        Toast.makeText(getApplicationContext(),墙纸已设置,Toast.LENGTH_SHORT).show();
    }赶上(MalformedURLException异常E){
        e.printStackTrace();
    }赶上(IOException异常E){
        e.printStackTrace();
    }
}
 

在AndroidManifest.xml中

 <使用-权限的Andr​​oid:名称=android.permission.SET_WALLPAPER>< /使用-许可>
 

I am a beginner so please bear with me. I created an app that allows you to scroll through a choice of wallpapers and select one. Everything works perfectly, but android only sets the bottom left corner as the wallpaper... the wallpaper dimensions are 640 x 960.

here is my code:

import java.io.IOException;
import java.io.InputStream;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.HorizontalScrollView;
import android.widget.ImageView;
import android.widget.LinearLayout;

public class Wallpapers extends Activity implements OnClickListener{

    Button preview;
    Button setBackground;
    Button returnBack;

    ImageView display;
    ImageView wallpaper1;
    ImageView wallpaper2;
    ImageView wallpaper3;
    ImageView wallpaper4;

    LinearLayout backgroundPreview;
    private int image = R.drawable.wallpaper1;
    HorizontalScrollView scrollView;

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

        preview= (Button)findViewById(R.id.wallpaperPreview);
        setBackground = (Button)findViewById(R.id.wallpaperSet);
        returnBack = (Button)findViewById(R.id.wallpaperReturn);
            preview.setOnClickListener(this);
            setBackground.setOnClickListener(this);
            returnBack.setOnClickListener(this);

        display=(ImageView)findViewById(R.id.wallpaperDisplay);
        wallpaper1=(ImageView)findViewById(R.id.wallpaper1);
        wallpaper2=(ImageView)findViewById(R.id.wallpaper2);
        wallpaper3=(ImageView)findViewById(R.id.wallpaper3);
        wallpaper4=(ImageView)findViewById(R.id.wallpaper4);
            wallpaper1.setOnClickListener(this);
            wallpaper2.setOnClickListener(this);
            wallpaper3.setOnClickListener(this);
            wallpaper4.setOnClickListener(this);

        backgroundPreview = (LinearLayout)findViewById(R.id.wallpaperActivityLayout);
        scrollView = (HorizontalScrollView)findViewById(R.id.horizontalScrollView);

    }

    public void onClick(View v) {
        switch (v.getId()) {
        case R.id.wallpaperPreview:
            previewBackground(image);
            break;
        case R.id.wallpaperSet:
            new AlertDialog.Builder(this)
                .setMessage("Would you like to set this image as your wallpaper?")
                .setPositiveButton("Yes", new DialogInterface.OnClickListener() {           
                    public void onClick(DialogInterface dialog, int which) {
                        InputStream is = getResources().openRawResource(image);
                        Bitmap wallpaper = BitmapFactory.decodeStream(is);

                        try{
                            getApplicationContext().setWallpaper(wallpaper);
                        }catch(IOException e){
                            e.printStackTrace();
                        }
                    }
                })
                .setNegativeButton("No", null)
                .show();

            break;
        case R.id.wallpaperReturn:
            reverse();
            break;
        case R.id.wallpaper1:
            display.setImageResource(R.drawable.wallpaper1);
            image = R.drawable.wallpaper1;
            break;
        case R.id.wallpaper2:
            display.setImageResource(R.drawable.wallpaper2);
            image = R.drawable.wallpaper2;
            break;
        case R.id.wallpaper3:
            display.setImageResource(R.drawable.wallpaper3);
            image = R.drawable.wallpaper3;
            break;
        case R.id.wallpaper4:
            display.setImageResource(R.drawable.wallpaper4);
            image = R.drawable.wallpaper4;
            break;
        }

    }

    private void previewBackground(int image) {
        backgroundPreview.setBackgroundResource(image);
        setBackground.setVisibility(View.GONE);
        preview.setVisibility(View.GONE);

        display.setVisibility(View.GONE);
        scrollView.setVisibility(View.GONE);

        returnBack.setVisibility(View.VISIBLE);             
    }

    private void reverse() {
        backgroundPreview.setBackgroundResource(android.R.color.black);
        setBackground.setVisibility(View.VISIBLE);
        preview.setVisibility(View.VISIBLE);

        display.setVisibility(View.VISIBLE);
        scrollView.setVisibility(View.VISIBLE);

        returnBack.setVisibility(View.GONE);                
    }
}

解决方案

 public void SetBackground(int Url) {

    try {
        File file = new File("/sdcard/sampleimage");
        Bitmap bitmap = BitmapFactory.decodeResource(getResources(), Url);
        bitmap.compress(CompressFormat.JPEG, 80, new FileOutputStream(file));
        Context context = this.getBaseContext();
        context.setWallpaper(bitmap);            
        Toast.makeText(getApplicationContext(), "Wallpaper has been set",             Toast.LENGTH_SHORT).show();            
    } catch (MalformedURLException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }         
}

in AndroidManifest.xml

<uses-permission android:name="android.permission.SET_WALLPAPER"></uses-permission>

这篇关于安卓入门:设置壁纸的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆