auto import from //depot/cupcake/@135843
This commit is contained in:
@@ -1,151 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2006 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.example.android.home;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.util.Log;
|
||||
import android.view.MotionEvent;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.Window;
|
||||
import android.widget.AdapterView;
|
||||
import android.widget.BaseAdapter;
|
||||
import android.widget.Gallery;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.Gallery.LayoutParams;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
|
||||
/**
|
||||
* Wallpaper picker for the Home application. User can choose from
|
||||
* a gallery of stock photos.
|
||||
*/
|
||||
public class Wallpaper extends Activity implements
|
||||
AdapterView.OnItemSelectedListener, AdapterView.OnItemClickListener {
|
||||
|
||||
private static final String LOG_TAG = "Home";
|
||||
|
||||
private static final Integer[] THUMB_IDS = {
|
||||
R.drawable.bg_android_icon,
|
||||
R.drawable.bg_sunrise_icon,
|
||||
R.drawable.bg_sunset_icon,
|
||||
};
|
||||
|
||||
private static final Integer[] IMAGE_IDS = {
|
||||
R.drawable.bg_android,
|
||||
R.drawable.bg_sunrise,
|
||||
R.drawable.bg_sunset,
|
||||
};
|
||||
|
||||
private Gallery mGallery;
|
||||
private boolean mIsWallpaperSet;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle icicle) {
|
||||
super.onCreate(icicle);
|
||||
requestWindowFeature(Window.FEATURE_NO_TITLE);
|
||||
|
||||
setContentView(R.layout.wallpaper);
|
||||
|
||||
mGallery = (Gallery) findViewById(R.id.gallery);
|
||||
mGallery.setAdapter(new ImageAdapter(this));
|
||||
mGallery.setOnItemSelectedListener(this);
|
||||
mGallery.setOnItemClickListener(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
mIsWallpaperSet = false;
|
||||
}
|
||||
|
||||
public void onItemSelected(AdapterView parent, View v, int position, long id) {
|
||||
getWindow().setBackgroundDrawableResource(IMAGE_IDS[position]);
|
||||
}
|
||||
|
||||
public void onItemClick(AdapterView parent, View v, int position, long id) {
|
||||
selectWallpaper(position);
|
||||
}
|
||||
|
||||
/*
|
||||
* When using touch if you tap an image it triggers both the onItemClick and
|
||||
* the onTouchEvent causing the wallpaper to be set twice. Synchronize this
|
||||
* method and ensure we only set the wallpaper once.
|
||||
*/
|
||||
private synchronized void selectWallpaper(int position) {
|
||||
if (mIsWallpaperSet) {
|
||||
return;
|
||||
}
|
||||
mIsWallpaperSet = true;
|
||||
try {
|
||||
InputStream stream = getResources().openRawResource(IMAGE_IDS[position]);
|
||||
setWallpaper(stream);
|
||||
setResult(RESULT_OK);
|
||||
finish();
|
||||
} catch (IOException e) {
|
||||
Log.e(LOG_TAG, "Failed to set wallpaper " + e);
|
||||
}
|
||||
}
|
||||
|
||||
public void onNothingSelected(AdapterView parent) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onTouchEvent(MotionEvent event) {
|
||||
selectWallpaper(mGallery.getSelectedItemPosition());
|
||||
return true;
|
||||
}
|
||||
|
||||
public class ImageAdapter extends BaseAdapter {
|
||||
|
||||
private Context mContext;
|
||||
|
||||
public ImageAdapter(Context c) {
|
||||
mContext = c;
|
||||
}
|
||||
|
||||
public int getCount() {
|
||||
return THUMB_IDS.length;
|
||||
}
|
||||
|
||||
public Object getItem(int position) {
|
||||
return position;
|
||||
}
|
||||
|
||||
public long getItemId(int position) {
|
||||
return position;
|
||||
}
|
||||
|
||||
public View getView(final int position, View convertView, ViewGroup parent) {
|
||||
ImageView i = new ImageView(mContext);
|
||||
|
||||
i.setImageResource(THUMB_IDS[position]);
|
||||
i.setAdjustViewBounds(true);
|
||||
i.setLayoutParams(new Gallery.LayoutParams(
|
||||
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
|
||||
i.setBackgroundResource(android.R.drawable.picture_frame);
|
||||
return i;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user