我有一个应用程序,我希望能够捕获屏幕截图.布局的背景是surfaceView,它显示后置摄像头的视频.以下代码可以截取屏幕截图,但surfaceView的内容保存为黑色.这是代码:
btn.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
Random num = new Random();
int nu=num.nextInt(1000);
Bitmap bmp;
CamView.setDrawingCacheEnabled(true);
CamView.buildDrawingCache(true);
Bitmap bmp2 = Bitmap.createBitmap(CamView.getDrawingCache()); //Screenshot of the layout
CamView.setDrawingCacheEnabled(false);
SurView.setDrawingCacheEnabled(true);
SurView.buildDrawingCache(true);
Bitmap bmp1 = Bitmap.createBitmap(SurView.getDrawingCache()); //Screenshot of the surfaceView
SurView.setDrawingCacheEnabled(false);
Bitmap bmOverlay = Bitmap.createBitmap(bmp1.getWidth(), bmp1.getHeight(),bmp1.getConfig());
Canvas canvas = new Canvas(bmOverlay); //Overlaying the 2 bitmaps
canvas.drawBitmap(bmp1, 0,0, null);
canvas.drawBitmap(bmp2, 0,0, null);
bmp=bmOverlay;
//saving the file
ByteArrayOutputStream bos = new ByteArrayOutputStream();
bmp.compress(CompressFormat.JPEG, 100, bos);
byte[] bitmapdata = bos.toByteArray();
ByteArrayInputStream fis = new …
Run Code Online (Sandbox Code Playgroud) 我希望我的应用能够在不使用其他应用程序的情况下捕获照片.我使用的代码:
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File photo = null;
try
{
photo = this.createTemporaryFile("picture", ".jpg");
photo.delete();
}
catch(Exception e)
{
Toast.makeText(getApplicationContext(),"Error",Toast.LENGTH_LONG).show();
}
mImageUri = Uri.fromFile(photo);
intent.putExtra(MediaStore.EXTRA_OUTPUT, mImageUri);
startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);
Run Code Online (Sandbox Code Playgroud)
但此代码使用手机的主要相机应用程序.谁能给我一些代码?
我正在创建一个应用程序,它应该与mediaPlayer播放一些声音.这是我使用的代码:
String[] name = {"sonar_slow","sonar_medium","sonar_fast"};
String link = "/res/raw/" + name[state-1] + ".mp3";
try {
player.setDataSource(link);
player.prepare();
player.start();
} catch(Exception e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
我也试过这个:
if(state==1){
player.create(this, R.raw.sonar_slow);
}else if(state==2){
player.create(this, R.raw.sonar_medium);
}else if(state==3){
player.create(this, R.raw.sonar_fast);
}
player.start();
Run Code Online (Sandbox Code Playgroud)
但以上都没有奏效.我的应用程序没有崩溃,但声音没有播放.有任何想法吗 ?
最近我更新了新的ADT插件.从那时起,每当我使用任何标签创建xml布局时
android:layout_toRightOf=" "
android:layout_alignParentLeft="true"
Run Code Online (Sandbox Code Playgroud)
基本上左右都有一个lint警告的东西告诉我要为每个左右标签添加开始和结束标签,以便支持从右到左的布局.
例如,它建议我将之前的xml更改为
android:layout_toRightOf=" "
android:layout_alignParentLeft="true"
android:layout_toEndOf=" "
android:layout_alignParentStart="true"
Run Code Online (Sandbox Code Playgroud)
有人有同样的问题吗?有没有办法让eclipse xml编辑器自动添加这些标签,因为我在布局中移动视图或者只是完全禁用这些lint或功能?我试着在我的清单中宣布
android:supportsRtl="false"
Run Code Online (Sandbox Code Playgroud)
为了禁用该功能,但该行需要api 17+,我的应用程序支持api 9+.
有没有人有办法解决吗 ?
我正在制作一个使用声音效果的应用.我想知道如何在声音播放完毕并触发事件时检测到.
我试过这个:
player = new MediaPlayer();
if (player != null) {
player.reset();
player.release();
}
player.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mediaPlayer) {
sonar.setBackgroundResource(R.drawable.sonar_off);
stopPlay();
}
});
if(state==1){
player = MediaPlayer.create(this, R.raw.sonar_slow);
}else if(state==2){
player = MediaPlayer.create(this, R.raw.sonar_medium);
}else if(state==3){
player = MediaPlayer.create(this, R.raw.sonar_fast);
}
try{
player.prepare();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
player.start();
Run Code Online (Sandbox Code Playgroud) 如何让活动像对话框一样出现在屏幕的中央,而前一个活动(调用透明的活动的活动)
在后台仍然可见?我尝试将重力设置为中心,将背景设置为#00000000,如其他答案所示,但它在其他答案中看不到.
transparency android android-layout android-activity android-background
我正在创建一个应用程序,我希望能够动态地使用其边距移动视图.我试过用这个:
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams)cover.getLayoutParams();
params.leftMargin= 470;
params.topMargin= 20;
cover.setLayoutParams(params); (cover is an ImageView)
Run Code Online (Sandbox Code Playgroud)
这段代码的问题在于它使用px而不是dp.我也尝试使用DisplayMetrics将我的px值转换为dp但失败了.你能帮助我吗 ?
我想知道如何在strings.xml中创建一个字符串数组,以及如何在java代码中访问它.我需要这个才能使用setText().请帮忙.
android ×8
audio ×2
camera ×2
java ×2
xml ×2
arrays ×1
events ×1
layout ×1
layoutparams ×1
lint ×1
margin ×1
screenshot ×1
storage ×1
string ×1
surfaceview ×1
transparency ×1