标签: drawbitmap

如何防止Android的drawBitmap只绘制黑色图像?

根据原始问题,最终结果是圆形矩形png,ImageView具有自然的下垂阴影.

我有阴影工作,但当它绘制时,它会使整个图像变黑.

替代文字

添加阴影时,如何防止原始图像(绝对不是黑色)变黑?

    BlurMaskFilter blurFilter = new BlurMaskFilter(2, BlurMaskFilter.Blur.OUTER);
    Paint shadowPaint = new Paint();
    shadowPaint.setMaskFilter(blurFilter);

    int[] offsetXY = new int[2];
    Bitmap originalBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.pier_t);
    Bitmap shadowImage = originalBitmap.extractAlpha(shadowPaint, offsetXY);

    Canvas c = new Canvas(shadowImage);
    c.drawBitmap(originalBitmap, -offsetXY[0], -offsetXY[1], null);

    imageView.setImageBitmap(shadowImage);
Run Code Online (Sandbox Code Playgroud)





更新:

我实现了Josh关于复制到正确色彩空间的建议,现在它的效果非常好!对于未来的搜索者,此代码会在图像视图上生成阴影.您可以使用x和y,以及OUTER常量来获得所需的效果.

BlurMaskFilter blurFilter = new BlurMaskFilter(2, BlurMaskFilter.Blur.OUTER);
Paint shadowPaint = new Paint();
shadowPaint.setMaskFilter(blurFilter);

int[] offsetXY = new int[2];
Bitmap originalBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.pier_t);
Bitmap shadowImage = originalBitmap.extractAlpha(shadowPaint, offsetXY);
Bitmap shadowImage32 = …
Run Code Online (Sandbox Code Playgroud)

android paint blur shadow drawbitmap

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

如何通过Canvas DrawBitmap绘制位图的一部分

我有一个
来源条件:

  1. FrameLayout(标有红色)
  2. 源ImageView(黑色)
  3. OnTouchListener的对象(imageview)(橙色)

使用OnTouchListener 通过对象,我想显示在imageview(源图像视图)上填充的位图的一部分.

所以这不是问题,我这样做:
Bitmap bt = Bitmap.createBitmap(sourceBitmap,event.getX(),event.getY(),250,250);

其中:

  1. SourceBitmap - 是添加到源ImageView的图像
  2. event.getX()/event.getY()是一个coord,我开始绘制位图的一部分
  3. 250,250 -其部分位图(部分)的尺寸.

结果是:

第一个案件的结果

所以出现的问题,当我的对象(touchlistener),去边境(我有此可能性橙色物体,去边框与Object.width()/ 2).

所以在这种情况下:
案例#2
我怎样才能达到这个结果:
案例#2的结果除外
部分的结果将是:

  1. 位图的一部分
  2. 第二部分是framelayout背景的颜色.

我现在尝试的是:

public boolean onTouch(View view, MotionEvent event) {

    switch (event.getAction()) {
        case MotionEvent.ACTION_MOVE:

            //i want to draw bigger portion then corrds
            int CurrentX = (int)view.getX() - (view.getWidth());
            int CurrentY = (int)view.getY() - (view.getHeight());

            //case,when object is going out of …
Run Code Online (Sandbox Code Playgroud)

android canvas border bitmap drawbitmap

11
推荐指数
1
解决办法
1182
查看次数

如何在android中的第一个图像上的选定点合并两个位图?

我如何将两个不同的图像合并为一个.此外,我需要在第一个图像上的特定点合并第二个图像.它在android中是否可行?

android bitmap drawbitmap

8
推荐指数
1
解决办法
1144
查看次数

Android:FrameLayout 子类不绘制

这是,什么工作:

a) 在 main.xml 中有两个 ImageView 的 FrameLayout

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:id="@+id/frameLayout1"
    android:layout_height="wrap_content">

    <ImageView android:src="@drawable/radar_background"
        android:id="@+id/background" android:layout_width="wrap_content"
        android:layout_height="wrap_content"></ImageView>

    <ImageView android:src="@drawable/radar_sector" android:id="@+id/sector"
        android:layout_width="wrap_content" android:layout_height="wrap_content"></ImageView>
</FrameLayout>
Run Code Online (Sandbox Code Playgroud)

b) 背景旋转动画,而前景扇区保持不变

因为我需要对背景图像做更多的工作,所以我把它放到了一个 FrameLayout 子类中,并相应地更改了 main.xml:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:id="@+id/frameLayout1"
    android:layout_height="wrap_content">

    <com.decades.SensorTest.RadarView
        android:id="@+id/background" android:layout_width="wrap_content"
        android:layout_height="wrap_content" /> 
    <ImageView android:src="@drawable/radar_sector" android:id="@+id/sector"
        android:layout_width="wrap_content" android:layout_height="wrap_content"></ImageView>
</FrameLayout>
Run Code Online (Sandbox Code Playgroud)

这是新的 RadarView.java:

public class RadarView extends FrameLayout {

    private Bitmap mRadar;

    public RadarView(Context context, AttributeSet attrs) {
        super(context, attrs);
        init();
    }

    public RadarView(Context context) {
        super(context);
        init();
    }
    private void init() {
        mRadar = …
Run Code Online (Sandbox Code Playgroud)

performance android custom-view drawbitmap

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

标签 统计

android ×4

drawbitmap ×4

bitmap ×2

blur ×1

border ×1

canvas ×1

custom-view ×1

paint ×1

performance ×1

shadow ×1