小编sNo*_*ore的帖子

保存时,位图会失去透明度

当我试图将位图保存到外部图片目录时,我有一个问题.当我使用Bitmap.compress函数保存它时,位图失去透明度并使背景变黑.但是当我将位图传递给imageview并在活动中显示它时它看起来很好并且具有透明度.只有当我尝试保存它时,透明度才会变黑.

我不得不说,我使用两个位图和porterduff模式在位图上绘制路径并仅显示绘制路径中的图片,并且所有其他像素应该被剪切或透明.

所以这是创建路径位图的功能:

private void createPathBitmap(RectF rect, Bitmap bitmap, Path path) {
    RectF tmpRect = new RectF(rect);
    Bitmap src = Bitmap.createBitmap(bitmap, (int) tmpRect.left, (int) tmpRect.top, (int) tmpRect.width(), (int) tmpRect.height());
    Bitmap dst = Bitmap.createBitmap(src.getWidth(), src.getHeight(), Bitmap.Config.ARGB_8888);
    Canvas canvas = new Canvas(dst);

    Paint paint = new Paint();
    paint.setAntiAlias(true);
    paint.setStyle(Paint.Style.STROKE);
    paint.setStrokeCap(Paint.Cap.ROUND);
    paint.setStrokeJoin(Paint.Join.ROUND);
    paint.setStrokeWidth(mDisplayDensity * SnippetLayer.PATH_DIAMETER);
    path.offset(-rect.left, -rect.top);
    canvas.drawPath(path, paint);
    paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
    RectF srcRect = new RectF(0, 0, rect.width(), rect.height());
    canvas.drawBitmap(src, null, srcRect, paint);
    BitmapManager.sBitmapSnippet = dst;
}
Run Code Online (Sandbox Code Playgroud)

这是将位图保存到外部存储器的方法:

 SimpleDateFormat dateFormat = new SimpleDateFormat("HH_mm_ss_dd_MM_yyyy"); …
Run Code Online (Sandbox Code Playgroud)

transparency android bitmap save

7
推荐指数
2
解决办法
4181
查看次数

AudioTrack Android从原始文件夹播放声音

是否可以AudioTrack从资源文件夹raw 播放wav文件?它尝试了很多方法来引用我的Android项目中的原始文件,但是我有很多例外.

这就是我现在所拥有的,但是当我按下按钮时,没有声音播放.

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Button buttonPlayAudioTrack = (Button) findViewById(R.id.buttonPlayAudioTrack);
    buttonPlayAudioTrack.setOnClickListener(this);

    int minBufferSize = AudioTrack.getMinBufferSize(44100, AudioFormat.CHANNEL_CONFIGURATION_MONO, 
                        AudioFormat.ENCODING_PCM_16BIT);

    audioTrack = new AudioTrack(AudioManager.STREAM_MUSIC, 44100, AudioFormat.CHANNEL_CONFIGURATION_MONO, 
                     AudioFormat.ENCODING_PCM_16BIT, minBufferSize, AudioTrack.MODE_STREAM); 
}
public void onClick(View v) {
    // TODO Auto-generated method stub
    if(v.getId() == R.id.buttonPlayAudioTrack) 
        playSound();
}

private void playSound() {
    audioTrack.play();
    int i = 0;
    int bufferSize = 512;
    byte [] buffer = new byte[bufferSize];
    InputStream inputStream = getResources().openRawResource(R.raw.piano12);
    try {
        while((i = inputStream.read()) != -1)
            audioTrack.write(buffer, 0, …
Run Code Online (Sandbox Code Playgroud)

android inputstream audiotrack

6
推荐指数
1
解决办法
6263
查看次数

RecyclerView项目失去焦点

在我的火电视应用我使用的是recyclerviewhorizontal layout.

滚动与dpad工作和项目正在获得关注.

但是,当我按住按钮时,它会非常快速地滚动,因为许多keydown事件被触发,并且项目正在失去焦点而且不可能再滚动,因为Textview我的recyclerview上方的另一个正在获得焦点.

它看起来像一个bug.这有什么解决方法吗?

android android-recyclerview linearlayoutmanager

5
推荐指数
3
解决办法
3932
查看次数