android 7.0 壁纸设置,android – 如何从imageview设置壁纸

无论我在我的应用程序中使用什么,我都发布了我的代码.我还从GridView中获取图像,并且当选择任何图像时.这将设置为壁纸.

但是,我的代码似乎有所不同.我从来没有使用任何ImageView

MainActivity.this

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

GridView gridview = (GridView) findViewById(R.id.gridview);

gridview.setAdapter(new ImageAdapter(this));

gridview.setOnItemClickListener(new OnItemClickListener() {

public void onItemClick(AdapterView> parent, View v, int position, long id) {

ImageAdapter i = (ImageAdapter)parent.getAdapter();

Bitmap mBitmap = BitmapFactory.decodeResource(getResources(),(int)i.getItemId(position));

WallpaperManager myWallpaperManager = WallpaperManager.getInstance(getApplicationContext());

try {

myWallpaperManager.setBitmap(mBitmap);

Toast.makeText(MainActivity.this, "Wallpaper set", Toast.LENGTH_SHORT).show();

} catch (IOException e) {

Toast.makeText(MainActivity.this, "Error setting wallpaper", Toast.LENGTH_SHORT).show();

}

}

});

}

public class ImageAdapter extends BaseAdapter {

private Context mContext;

public ImageAdapter(Context c) {

mContext = c;

}

public int getCount() {

return mThumbIds.length;

}

public Object getItem(int position) {

return null;

}

public long getItemId(int position) {

return mFullSizeIds[position];

}

// create a new ImageView for each item referenced by the Adapter

public View getView(int position, View convertView, ViewGroup parent) {

ImageView imageView;

if (convertView == null) {

imageView = new ImageView(mContext);

imageView.setLayoutParams(new GridView.LayoutParams(300, 250));

imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);

imageView.setPadding(8, 8, 8, 8);

} else {

imageView = (ImageView) convertView;

}

imageView.setImageResource(mThumbIds[position]);

return imageView;

}

// references to our images

private Integer[] mThumbIds = {

R.drawable.wallpaper1t,

R.drawable.wallpaper2t,

R.drawable.wallpaper3t,

R.drawable.wallpaper4t,

R.drawable.wallpaper5t,

R.drawable.wallpaper6t,

R.drawable.wallpaper7t,

R.drawable.wallpaper8t

};

private Integer[] mFullSizeIds = {

R.drawable.wallpaper1,

R.drawable.wallpaper2,

R.drawable.wallpaper3,

R.drawable.wallpaper4,

R.drawable.wallpaper5,

R.drawable.wallpaper6,

R.drawable.wallpaper7,

R.drawable.wallpaper8

};

}

main.xml中

android:id="@+id/gridview"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:numColumns="auto_fit"

android:verticalSpacing="10dp"

android:horizontalSpacing="10dp"

android:stretchMode="columnWidth"

android:gravity="center"/>

也许,这可以帮助你很多.

Ken Burns effect效果自动移动来显示完整图片。你可以自定义移动路径,如:从左到有、从上到下、从左下角到右上角、从右上角到左下角等等,并且这些路径可以组合使用项目地址:https://github.com/AlbertGrobas/MovingImageView 效果图:如何使用:创建图片<net.grobas.view.MovingImageView             android:id="@ id/image"             android:layout_width="match_parent"             android:layout_height="250dp"             android:clickable="true"             android: 添加移动监听image = (MovingImageView) findViewById(R.id.image); image.getMovingAnimator().addListener(new Animator.AnimatorListener() {             @Override             public void onAnimationStart(Animator animation) {                 Log.i("Sample MovingImageView", "Start");             }             @Override             public void onAnimationEnd(Animator animation) {                 Log.i("Sample MovingImageView", "End");             }             @Override             public void onAnimationCancel(Animator animation) {                 Log.i("Sample MovingImageView", "Cancel");             }             @Override             public void onAnimationRepeat(Animator animation) {                 Log.i("Sample MovingImageView", "Repeat");             }         });3. 停止和重新开始image.getMovingAnimator().pause();//停止 image.getMovingAnimator().resume();//重新开始注意:这俩个功能只能在Android 4.4以上使用。4. 设置自定义移动路径image.getMovingAnimator().addCustomMovement().addDiagonalMoveToDownRight().addHorizontalMoveToLeft().addDiagonalMoveToUpRight()                     .addVerticalMoveToDown().addHorizontalMoveToLeft().addVerticalMoveToUp().start();DiagonalMoveToDownRight:从左上角到右下角HorizontalMoveToLeft:从右到左DiagonalMoveToUpRight:从左下角到右上角清除自定义路径:image.getMovingAnimator().clearCustomMovement();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值