package tile.mode.namespace;
import java.io.File;
import java.io.FileOutputStream;
import android.app.Activity;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.graphics.Bitmap;
import android.graphics.Bitmap.CompressFormat;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.graphics.Shader.TileMode;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ImageView.ScaleType;
public class TileModeActivity extends Activity {
Button button1;
boolean btyp=true;
String path1;
ImageView imageView1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
saveBitmapToSd();//SDカードに画像ファイルをコピー
imageView1 = (ImageView)findViewById(R.id.imageView1);
imageView1.setBackgroundColor(Color.BLUE);
path1 = Environment.getExternalStorageDirectory().getPath()+"/TileMode.png";
button1=(Button)findViewById(R.id.button1);
button1.setOnClickListener(new OnClickListener(){
public void onClick(View arg0) {
if(btyp){//タイル表示
try{
BitmapDrawable bmpDrawer =(BitmapDrawable) Drawable.createFromPath(path1);
bmpDrawer.setTileModeXY(TileMode.REPEAT, TileMode.REPEAT);
imageView1.setBackgroundDrawable(bmpDrawer);
imageView1.setImageBitmap(null);
}
catch(Exception e){Log.d("Error",e.toString());}
}
else{//拡大表示
try{
imageView1.setScaleType(ScaleType.CENTER_CROP);
Bitmap bitmap = BitmapFactory.decodeFile(path1);
imageView1.setImageBitmap(bitmap);
imageView1.setBackgroundDrawable(null);
}
catch(Exception e){Log.d("Error",e.toString());}
}
btyp=!btyp;
}});
}
//使用する画像をSDカードに保存する
public void saveBitmapToSd() {
try {
PackageManager pm = getPackageManager();
ResolveInfo appData=pm.resolveActivity(getIntent(), 0);
Drawable appIcon = appData.loadIcon(pm);
Bitmap mBitmap=((BitmapDrawable) appIcon).getBitmap();
// sdcardフォルダを指定
File root = Environment.getExternalStorageDirectory();
// 保存処理開始
FileOutputStream fos = null;
fos = new FileOutputStream(new File(root, "TileMode.png"));
// PNGで保存
mBitmap.compress(CompressFormat.PNG, 100, fos);
// 保存処理終了
fos.close();
} catch (Exception e) {
Log.e("Error", "" + e.toString());
}
}
}
|