Android MediaPlayer 播放指定文件夾
public void PlayList(File file) {
if (file.isFile()) {
if (file.isFile()) {
fileDir = file.getParentFile();
fileName = file.getName();
} else {
fileDir = file;
fileName = null;
}
fileArray = new ArrayList<String>();
fileDir.list(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
if (name.endsWith(".mp3") || name.endsWith(".mp4") || name.endsWith(".wav")) {
if ((new File(dir, name)).isFile()) {
fileArray.add(name);
return true;
} else {
return false;
}
} else {
return false;
}
}
});
PlayFile(fileName);
} else {
Log.i(TAG, "nofindthefile...................................................");
}
}
public void PlayFile(final String fileName) {
Log.i(TAG, "FileName" + fileName);
intNum = fileArray.indexOf(fileName);
if (intNum == -1) {
intNum = 0;
}
Uri uri = Uri.fromFile(new File(fileDir, fileArray.get(intNum)));
if (intNum < fileArray.size() - 1) {
intNum++;
} else {
intNum = 0;
}
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mediaPlayer.reset();
try {
mediaPlayer.setDataSource(context, uri);
mediaPlayer.prepare();
} catch (IOException e) {
e.printStackTrace();
PlayFile(fileArray.get(intNum));
}
mediaPlayer.start();
mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
PlayFile(fileArray.get(intNum));
}
});
}
2017年4月5日水曜日
2017年4月2日日曜日
Java FilenameFilter
Java FilenameFilter
public void test() {
File file = new File(Environment.getExternalStorageDirectory().toString());
String[] files = file.list(new MusicFilter());
if (files.length > 0) {
for (String name : files) {
System.out.println(name);
}
}
String[] files2 = file.list(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
if (name.endsWith(".mp3") || name.endsWith(".wav")) {
return true;
} else {
return false;
}
}
});
if (files2.length > 0) {
for (String name : files2) {
System.out.println(name);
}
}
}
public class MusicFilter implements FilenameFilter {
@Override
public boolean accept(File dir, String name) {
if (name.endsWith(".mp3") || name.endsWith(".wav")) {
return true;
} else {
return false;
}
}
}
public void test() {
File file = new File(Environment.getExternalStorageDirectory().toString());
String[] files = file.list(new MusicFilter());
if (files.length > 0) {
for (String name : files) {
System.out.println(name);
}
}
String[] files2 = file.list(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
if (name.endsWith(".mp3") || name.endsWith(".wav")) {
return true;
} else {
return false;
}
}
});
if (files2.length > 0) {
for (String name : files2) {
System.out.println(name);
}
}
}
public class MusicFilter implements FilenameFilter {
@Override
public boolean accept(File dir, String name) {
if (name.endsWith(".mp3") || name.endsWith(".wav")) {
return true;
} else {
return false;
}
}
}
2017年3月31日金曜日
Android 卡拉OK
Android 卡拉OK
protected void arp() {
int sampleRateInHz = 44100;
int rec_bufsize = AudioRecord.getMinBufferSize(sampleRateInHz, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT);
int play_bufsize = AudioTrack.getMinBufferSize(sampleRateInHz, AudioFormat.CHANNEL_OUT_MONO, AudioFormat.ENCODING_PCM_16BIT);
// MediaRecorder.AudioSource.MIC
AudioRecord audioRecord = new AudioRecord(
MediaRecorder.AudioSource.MIC,
sampleRateInHz,
AudioFormat.CHANNEL_IN_MONO,
AudioFormat.ENCODING_PCM_16BIT,
rec_bufsize);
AudioTrack audioTrack = new AudioTrack(
AudioManager.STREAM_MUSIC,
sampleRateInHz,
AudioFormat.CHANNEL_OUT_MONO,
AudioFormat.ENCODING_PCM_16BIT,
play_bufsize,
AudioTrack.MODE_STREAM);
byte[] temp = new byte[16];
audioRecord.startRecording();
audioTrack.play();
while (!stop) {
audioRecord.read(temp, 0, temp.length);
audioTrack.write(temp, 0, temp.length);
}
audioTrack.stop();
audioRecord.stop();
audioRecord.release();
}
protected void arp() {
int sampleRateInHz = 44100;
int rec_bufsize = AudioRecord.getMinBufferSize(sampleRateInHz, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT);
int play_bufsize = AudioTrack.getMinBufferSize(sampleRateInHz, AudioFormat.CHANNEL_OUT_MONO, AudioFormat.ENCODING_PCM_16BIT);
// MediaRecorder.AudioSource.MIC
AudioRecord audioRecord = new AudioRecord(
MediaRecorder.AudioSource.MIC,
sampleRateInHz,
AudioFormat.CHANNEL_IN_MONO,
AudioFormat.ENCODING_PCM_16BIT,
rec_bufsize);
AudioTrack audioTrack = new AudioTrack(
AudioManager.STREAM_MUSIC,
sampleRateInHz,
AudioFormat.CHANNEL_OUT_MONO,
AudioFormat.ENCODING_PCM_16BIT,
play_bufsize,
AudioTrack.MODE_STREAM);
byte[] temp = new byte[16];
audioRecord.startRecording();
audioTrack.play();
while (!stop) {
audioRecord.read(temp, 0, temp.length);
audioTrack.write(temp, 0, temp.length);
}
audioTrack.stop();
audioRecord.stop();
audioRecord.release();
}
2017年3月30日木曜日
Android AoundTrack
Android AoundTrack
package com.example.kankanla.start;
import android.media.AudioFormat;
import android.media.AudioManager;
import android.media.AudioTrack;
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Toast;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toast.makeText(this, "AudioTrack.demo", Toast.LENGTH_LONG).show();
new Thread(new Runnable() {
@Override
public void run() {
try {
AP();
} catch (IOException e) {
e.printStackTrace();
}
}
}).start();
}
protected void AP() throws IOException {
int sampleRateInHz = 44100;
int buferSize = AudioTrack.getMinBufferSize(
sampleRateInHz,
AudioFormat.CHANNEL_IN_STEREO,
AudioFormat.ENCODING_PCM_16BIT);
AudioTrack audioTrack = new AudioTrack(
AudioManager.STREAM_MUSIC,
sampleRateInHz,
AudioFormat.CHANNEL_IN_STEREO,
AudioFormat.ENCODING_PCM_16BIT,
buferSize, AudioTrack.MODE_STREAM);
FileInputStream fileInputStream = new FileInputStream(new File(Environment.getExternalStorageDirectory().toString(), "PCM-D50_441kHz16bit.wav"));
byte[] buffer = new byte[buferSize];
int lens = 0;
audioTrack.play();
while ((lens = fileInputStream.read(buffer)) != -1) {
audioTrack.write(buffer, 0, lens);
}
System.out.println(audioTrack.getPlayState());
audioTrack.stop();
System.out.println(audioTrack.getPlayState());
System.out.println(Thread.currentThread().getName());
// public static final int PLAYSTATE_STOPPED = 1; // matches SL_PLAYSTATE_STOPPED
// /** indicates AudioTrack state is paused */
// public static final int PLAYSTATE_PAUSED = 2; // matches SL_PLAYSTATE_PAUSED
// /** indicates AudioTrack state is playing */
// public static final int PLAYSTATE_PLAYING = 3; // matches SL_PLAYSTATE_PLAYING
}
}
package com.example.kankanla.start;
import android.media.AudioFormat;
import android.media.AudioManager;
import android.media.AudioTrack;
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Toast;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toast.makeText(this, "AudioTrack.demo", Toast.LENGTH_LONG).show();
new Thread(new Runnable() {
@Override
public void run() {
try {
AP();
} catch (IOException e) {
e.printStackTrace();
}
}
}).start();
}
protected void AP() throws IOException {
int sampleRateInHz = 44100;
int buferSize = AudioTrack.getMinBufferSize(
sampleRateInHz,
AudioFormat.CHANNEL_IN_STEREO,
AudioFormat.ENCODING_PCM_16BIT);
AudioTrack audioTrack = new AudioTrack(
AudioManager.STREAM_MUSIC,
sampleRateInHz,
AudioFormat.CHANNEL_IN_STEREO,
AudioFormat.ENCODING_PCM_16BIT,
buferSize, AudioTrack.MODE_STREAM);
FileInputStream fileInputStream = new FileInputStream(new File(Environment.getExternalStorageDirectory().toString(), "PCM-D50_441kHz16bit.wav"));
byte[] buffer = new byte[buferSize];
int lens = 0;
audioTrack.play();
while ((lens = fileInputStream.read(buffer)) != -1) {
audioTrack.write(buffer, 0, lens);
}
System.out.println(audioTrack.getPlayState());
audioTrack.stop();
System.out.println(audioTrack.getPlayState());
System.out.println(Thread.currentThread().getName());
// public static final int PLAYSTATE_STOPPED = 1; // matches SL_PLAYSTATE_STOPPED
// /** indicates AudioTrack state is paused */
// public static final int PLAYSTATE_PAUSED = 2; // matches SL_PLAYSTATE_PAUSED
// /** indicates AudioTrack state is playing */
// public static final int PLAYSTATE_PLAYING = 3; // matches SL_PLAYSTATE_PLAYING
}
}
2017年3月26日日曜日
Android ContentProvider 内容提供程序單元測試
ContentProvider 内容提供程序單元測試
public class youContentProviderTest {
@Test
public void delete() throws Exception {
Context context = InstrumentationRegistry.getContext();
ContentResolver contentResolver = context.getContentResolver();
Uri uri = Uri.parse("content://com.kankanla.e560.m0325a.youContentProvider/categoly/delete/");
int i = contentResolver.delete(uri, "rowid > ?", new String[]{"10"});
System.out.println("77777777777777777777777777777777");
System.out.println(i);
}
@Test
public void insert() throws Exception {
Context context = InstrumentationRegistry.getContext();
ContentResolver contentResolver = context.getContentResolver();
Uri uri = Uri.parse("content://com.kankanla.e560.m0325a.youContentProvider/category/insert/1");
System.out.println("11111111111111111111111111111111111111111");
System.out.println(uri.getAuthority());
System.out.println(uri.getPath());
System.out.println(uri.getPathSegments());
System.out.println("2222222222222222222222222222222222222222222");
ContentValues contentValues = new ContentValues();
contentValues.put("category_name", "日本語");
for (int i = 0; i < 10; i++) {
Uri uri1 = contentResolver.insert(uri, contentValues);
System.out.println(uri1.toString());
}
}
}
package com.kankanla.e560.m0325a;
import android.content.ContentProvider;
import android.content.ContentUris;
import android.content.ContentValues;
import android.content.Context;
import android.content.UriMatcher;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.net.Uri;
import android.provider.Settings;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.util.Log;
/**
* Created by E560 on 2017/03/25.
*/
public class youContentProvider extends ContentProvider {
private static final String TAG = "youContentProvider";
private static YouDB youDB;
private static UriMatcher uriMatcher;
private static final String AUTHORITY = "com.kankanla.e560.m0325a.youContentProvider";
private static final int insert_category = 1;
private static final int select_category = 2;
private static final int insert_list = 3;
private static final int select_list = 4;
private static final int matcher_all = 5;
private static final int del_category = 6;
private static final int error = 9;
static {
uriMatcher = new UriMatcher(UriMatcher.NO_MATCH);
uriMatcher.addURI(AUTHORITY, "list/insert", insert_list);
uriMatcher.addURI(AUTHORITY, "category/insert", insert_category);
uriMatcher.addURI(AUTHORITY, "category/insert/#", insert_category);
uriMatcher.addURI(AUTHORITY, "category/delete/", del_category);
uriMatcher.addURI(AUTHORITY, "*/*/*", error);
}
@Override
public boolean onCreate() {
youDB = new YouDB(getContext());
SQLiteDatabase sqLiteDatabase = youDB.getReadableDatabase();
sqLiteDatabase.isReadOnly();
System.out.println("888888888888888888888888888888888888888888");
Log.i(TAG, String.valueOf(sqLiteDatabase.isOpen()));
return sqLiteDatabase.isOpen();
}
@Nullable
@Override
public Cursor query(@NonNull Uri uri, @Nullable String[] projection, @Nullable String selection, @Nullable String[] selectionArgs, @Nullable String sortOrder) {
return null;
}
@Nullable
@Override
public String getType(@NonNull Uri uri) {
return null;
}
@Nullable
@Override
public Uri insert(@NonNull Uri uri, @Nullable ContentValues values) {
Uri uri1 = Uri.parse(uri.getAuthority() + uri.getPath());
int i = uriMatcher.match(uri);
System.out.println(i);
long cont = 0;
System.out.println("000000000000000000000000000000000000000000000000");
SQLiteDatabase sqLiteDatabase = youDB.getWritableDatabase();
switch (i) {
case insert_category:
cont = sqLiteDatabase.insert("category", null, values);
uri1 = ContentUris.withAppendedId(Uri.parse(uri.getAuthority() + uri.getPath()), cont);
break;
case insert_list:
cont = sqLiteDatabase.insert("list", null, values);
uri1 = ContentUris.withAppendedId(Uri.parse(uri.getAuthority() + uri.getPath()), cont);
break;
}
System.out.println(uri1.toString());
sqLiteDatabase.close();
return uri1;
}
@Override
public int delete(@NonNull Uri uri, @Nullable String selection, @Nullable String[] selectionArgs) {
int flag = uriMatcher.match(uri);
int con = 0;
SQLiteDatabase sqLiteDatabase = youDB.getWritableDatabase();
switch (flag) {
case del_category:
con = sqLiteDatabase.delete("category", selection, selectionArgs);
break;
}
sqLiteDatabase.close();
return con;
}
@Override
public int update(@NonNull Uri uri, @Nullable ContentValues values, @Nullable String selection, @Nullable String[] selectionArgs) {
return 0;
}
private class YouDB extends SQLiteOpenHelper {
private static final String name = "m0325.db";
private static final int version = 1;
public YouDB(Context context) {
super(context, name, null, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
String sql_category = "create table category(rowid INTEGER PRIMARY KEY AUTOINCREMENT, category_name TEXT NOT NULL)";
String sql_index = "create table list (rowid INTEGER PRIMARY KEY AUTOINCREMENT, category_id INTEGER NOT NULL,comment TEXT)";
db.execSQL(sql_category);
db.execSQL(sql_index);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
}
public class youContentProviderTest {
@Test
public void delete() throws Exception {
Context context = InstrumentationRegistry.getContext();
ContentResolver contentResolver = context.getContentResolver();
Uri uri = Uri.parse("content://com.kankanla.e560.m0325a.youContentProvider/categoly/delete/");
int i = contentResolver.delete(uri, "rowid > ?", new String[]{"10"});
System.out.println("77777777777777777777777777777777");
System.out.println(i);
}
@Test
public void insert() throws Exception {
Context context = InstrumentationRegistry.getContext();
ContentResolver contentResolver = context.getContentResolver();
Uri uri = Uri.parse("content://com.kankanla.e560.m0325a.youContentProvider/category/insert/1");
System.out.println("11111111111111111111111111111111111111111");
System.out.println(uri.getAuthority());
System.out.println(uri.getPath());
System.out.println(uri.getPathSegments());
System.out.println("2222222222222222222222222222222222222222222");
ContentValues contentValues = new ContentValues();
contentValues.put("category_name", "日本語");
for (int i = 0; i < 10; i++) {
Uri uri1 = contentResolver.insert(uri, contentValues);
System.out.println(uri1.toString());
}
}
}
package com.kankanla.e560.m0325a;
import android.content.ContentProvider;
import android.content.ContentUris;
import android.content.ContentValues;
import android.content.Context;
import android.content.UriMatcher;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.net.Uri;
import android.provider.Settings;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.util.Log;
/**
* Created by E560 on 2017/03/25.
*/
public class youContentProvider extends ContentProvider {
private static final String TAG = "youContentProvider";
private static YouDB youDB;
private static UriMatcher uriMatcher;
private static final String AUTHORITY = "com.kankanla.e560.m0325a.youContentProvider";
private static final int insert_category = 1;
private static final int select_category = 2;
private static final int insert_list = 3;
private static final int select_list = 4;
private static final int matcher_all = 5;
private static final int del_category = 6;
private static final int error = 9;
static {
uriMatcher = new UriMatcher(UriMatcher.NO_MATCH);
uriMatcher.addURI(AUTHORITY, "list/insert", insert_list);
uriMatcher.addURI(AUTHORITY, "category/insert", insert_category);
uriMatcher.addURI(AUTHORITY, "category/insert/#", insert_category);
uriMatcher.addURI(AUTHORITY, "category/delete/", del_category);
uriMatcher.addURI(AUTHORITY, "*/*/*", error);
}
@Override
public boolean onCreate() {
youDB = new YouDB(getContext());
SQLiteDatabase sqLiteDatabase = youDB.getReadableDatabase();
sqLiteDatabase.isReadOnly();
System.out.println("888888888888888888888888888888888888888888");
Log.i(TAG, String.valueOf(sqLiteDatabase.isOpen()));
return sqLiteDatabase.isOpen();
}
@Nullable
@Override
public Cursor query(@NonNull Uri uri, @Nullable String[] projection, @Nullable String selection, @Nullable String[] selectionArgs, @Nullable String sortOrder) {
return null;
}
@Nullable
@Override
public String getType(@NonNull Uri uri) {
return null;
}
@Nullable
@Override
public Uri insert(@NonNull Uri uri, @Nullable ContentValues values) {
Uri uri1 = Uri.parse(uri.getAuthority() + uri.getPath());
int i = uriMatcher.match(uri);
System.out.println(i);
long cont = 0;
System.out.println("000000000000000000000000000000000000000000000000");
SQLiteDatabase sqLiteDatabase = youDB.getWritableDatabase();
switch (i) {
case insert_category:
cont = sqLiteDatabase.insert("category", null, values);
uri1 = ContentUris.withAppendedId(Uri.parse(uri.getAuthority() + uri.getPath()), cont);
break;
case insert_list:
cont = sqLiteDatabase.insert("list", null, values);
uri1 = ContentUris.withAppendedId(Uri.parse(uri.getAuthority() + uri.getPath()), cont);
break;
}
System.out.println(uri1.toString());
sqLiteDatabase.close();
return uri1;
}
@Override
public int delete(@NonNull Uri uri, @Nullable String selection, @Nullable String[] selectionArgs) {
int flag = uriMatcher.match(uri);
int con = 0;
SQLiteDatabase sqLiteDatabase = youDB.getWritableDatabase();
switch (flag) {
case del_category:
con = sqLiteDatabase.delete("category", selection, selectionArgs);
break;
}
sqLiteDatabase.close();
return con;
}
@Override
public int update(@NonNull Uri uri, @Nullable ContentValues values, @Nullable String selection, @Nullable String[] selectionArgs) {
return 0;
}
private class YouDB extends SQLiteOpenHelper {
private static final String name = "m0325.db";
private static final int version = 1;
public YouDB(Context context) {
super(context, name, null, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
String sql_category = "create table category(rowid INTEGER PRIMARY KEY AUTOINCREMENT, category_name TEXT NOT NULL)";
String sql_index = "create table list (rowid INTEGER PRIMARY KEY AUTOINCREMENT, category_id INTEGER NOT NULL,comment TEXT)";
db.execSQL(sql_category);
db.execSQL(sql_index);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
}
2017年3月19日日曜日
android adb error (10061)
解決步驟
C:\Users>adb devices
List of devices attached
cc13094de device
C:\Users>adb connect 192.168.11.100
unable to connect to 192.168.11.100:5555: cannot connect to 192.168.11.100:5555: 対象のコンピューターによって拒否された ため、接続できませんでした。 (10061)
C:\Users>adb kill-server
C:\Users>adb usb
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
restarting in USB mode
C:\Users>adb tcpip 5555
restarting in TCP mode port: 5555
C:\Users>adb connect 192.168.11.100
connected to 192.168.11.100:5555
C:\Users>adb devices
List of devices attached
192.168.11.100:5555 device
cc13094de device
C:\Users>adb devices
List of devices attached
cc13094de device
C:\Users>adb connect 192.168.11.100
unable to connect to 192.168.11.100:5555: cannot connect to 192.168.11.100:5555: 対象のコンピューターによって拒否された ため、接続できませんでした。 (10061)
C:\Users>adb kill-server
C:\Users>adb usb
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
restarting in USB mode
C:\Users>adb tcpip 5555
restarting in TCP mode port: 5555
C:\Users>adb connect 192.168.11.100
connected to 192.168.11.100:5555
C:\Users>adb devices
List of devices attached
192.168.11.100:5555 device
cc13094de device
2017年3月17日金曜日
Andriod Intent Camera
Andriod Intent Camera
public class MainActivity extends AppCompatActivity {
protected File file;
protected Uri uri;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
t1();
}
protected void t1() {
file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM), "00000aaaa.jpg");
uri = Uri.fromFile(file);
Intent intent = new Intent();
intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
startActivityForResult(intent, 99);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 99 && resultCode == RESULT_OK) {
view2();
}
}
protected void view2() {
Display display = getWindowManager().getDefaultDisplay();
Point p = new Point();
display.getSize(p);
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeFile(file.getAbsolutePath(), options);
int samsize = Math.max(options.outHeight / p.y, options.outWidth / p.x);
options.inJustDecodeBounds = false;
options.inSampleSize = samsize;
ImageView imageView = (ImageView) findViewById(R.id.vvvv);
Bitmap bt = BitmapFactory.decodeFile(file.getAbsolutePath(), options);
imageView.setImageBitmap(bt);
}
}
public class MainActivity extends AppCompatActivity {
protected File file;
protected Uri uri;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
t1();
}
protected void t1() {
file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM), "00000aaaa.jpg");
uri = Uri.fromFile(file);
Intent intent = new Intent();
intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
startActivityForResult(intent, 99);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 99 && resultCode == RESULT_OK) {
view2();
}
}
protected void view2() {
Display display = getWindowManager().getDefaultDisplay();
Point p = new Point();
display.getSize(p);
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeFile(file.getAbsolutePath(), options);
int samsize = Math.max(options.outHeight / p.y, options.outWidth / p.x);
options.inJustDecodeBounds = false;
options.inSampleSize = samsize;
ImageView imageView = (ImageView) findViewById(R.id.vvvv);
Bitmap bt = BitmapFactory.decodeFile(file.getAbsolutePath(), options);
imageView.setImageBitmap(bt);
}
}
登録:
投稿 (Atom)