原谅我不熟悉我的女性学可能不正确:
我在class1中有一个图像数组,当选择一个图像时,它的id被传递给class2(下面的代码)然后我会显示该图像并给出将其设置为壁纸的选项。问题是,使用下面的代码我需要一个drawable来分配壁纸,而不是ImageView。有人可以给我一些指导,参考我所拥有的实际绘图 “myWallpaperManager.setResource(这里需要一个drawable);”
提前致谢。希望这是有道理的,因为我说我是一个菜鸟!
public class FullWallView extends Activity {
private Button wallbutton;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.wallpaper_full);
// get intent data
Intent i = getIntent();
// Selected image id
int position = i.getExtras().getInt("id");
ImageAdapter imageAdapter = new ImageAdapter(this);
ImageView imageView = (ImageView) findViewById(R.id.full_wall_view);
imageView.setImageResource(imageAdapter.mThumbIds[position]);
//Making Button Clickable and setting the wallpaper
wallbutton = (Button) findViewById(R.id.apply);
wallbutton.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
WallpaperManager myWallpaperManager
= WallpaperManager.getInstance(getApplicationContext());
try {
myWallpaperManager.setResource(need a drawable here);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}});
答案 0 :(得分:29)
首先定义Drawable,然后在ImageView中设置它。
img=(ImageView)findViewById(R.id.imageview1);
Drawable myDrawable = getResources().getDrawable(R.drawable.imageView1);
img.setImageDrawable(myDrawable);
答案 1 :(得分:7)
getResources().getDrawable(int id)方法。
您可以检查版本,然后使用以下方法:
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
imageView.setImageDrawable(getApplicationContext().getDrawable(R.drawable.myDrawable));
} else {
imageView.setImageDrawable(getResources().getDrawable(R.drawable.myDrawable));
}
答案 2 :(得分:1)
我刚刚注意到你需要传递resourceID而不是Drawable,没有直接从ImageView获取resourceID的方法,你为什么不试着记住这个值然后传递它。
希望这有助于并享受您的工作
答案 3 :(得分:0)
如果要通过仅提供图像名称来动态地执行此操作:
public static Drawable getImage(Context context, String name) {
return context.getResources().getDrawable(context.getResources().getIdentifier(name, "drawable", context.getPackageName()));
}
然后像这样设置imagedrawable:
ImageView image = findViewById(R.id.logo);
image.setImageDrawable(getImage(context, "imageName"));