小编mre*_*re1的帖子

以编程方式截取屏幕截图并不捕获surfaceVIew的内容

我有一个应用程序,我希望能够捕获屏幕截图.布局的背景是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)

storage camera android screenshot surfaceview

14
推荐指数
1
解决办法
1万
查看次数

如何无意地从相机中捕捉照片

我希望我的应用能够在不使用其他应用程序的情况下捕获照片.我使用的代码:

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)

但此代码使用手机的主要相机应用程序.谁能给我一些代码?

camera android image-capture android-intent

7
推荐指数
1
解决办法
8619
查看次数

从res/raw播放声音

我正在创建一个应用程序,它应该与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)

但以上都没有奏效.我的应用程序没有崩溃,但声音没有播放.有任何想法吗 ?

audio android android-mediaplayer

6
推荐指数
2
解决办法
2万
查看次数

从右到左布局支持在xml编辑器中导致警告lint

最近我更新了新的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+.

有没有人有办法解决吗 ?

xml layout android lint right-to-left

5
推荐指数
1
解决办法
9049
查看次数

当mediaPlayer停止时触发事件

我正在制作一个使用声音效果的应用.我想知道如何在声音播放完毕并触发事件时检测到.

我试过这个:

 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)

audio events android android-mediaplayer

2
推荐指数
1
解决办法
3885
查看次数

如何使Activity的背景透明化?

如何让活动像对话框一样出现在屏幕的中央,而前一个活动(调用透明的活动的活动)
在后台仍然可见?我尝试将重力设置为中心,将背景设置为#00000000,如其他答案所示,但它在其他答案中看不到.

transparency android android-layout android-activity android-background

2
推荐指数
1
解决办法
9851
查看次数

在relativeLayout中使用dp的layoutparams

我正在创建一个应用程序,我希望能够动态地使用其边距移动视图.我试过用这个:

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但失败了.你能帮助我吗 ?

java android margin relativelayout layoutparams

2
推荐指数
1
解决办法
3764
查看次数

res/values/strings.xml中的字符串数组

我想知道如何在strings.xml中创建一个字符串数组,以及如何在java代码中访问它.我需要这个才能使用setText().请帮忙.

java xml arrays string android

0
推荐指数
1
解决办法
3872
查看次数