本文介绍了安卓入门:设置壁纸的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我是初学者所以请大家多多包涵。我创建了一个应用程序,让您可以滚动壁纸的选择,选择一个。一切完美,但是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.HorizontalScrollView;
进口android.widget.ImageView;
进口android.widget.LinearLayout;
公共类壁纸延伸活动实现OnClickListener {
按钮preVIEW;
按钮的setBackground;
按钮returnBack;
ImageView的显示;
ImageView的wallpaper1;
ImageView的wallpaper2;
ImageView的wallpaper3;
ImageView的wallpaper4;
的LinearLayout背景preVIEW;
私人诠释图像= R.drawable.wallpaper1;
HorizontalScrollView滚动视图;
@覆盖
保护无效的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);
滚动视图=(HorizontalScrollView)findViewById(R.id.horizontalScrollView);
}
公共无效的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中
<使用-权限的Android:名称=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>
这篇关于安卓入门:设置壁纸的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!