首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android -在TouchImageView上使用位图绘制线条

Android -在TouchImageView上使用位图绘制线条
EN

Stack Overflow用户
提问于 2015-05-26 17:09:32
回答 1查看 474关注 0票数 1

基本上,我想在图像上画线,这样当图像被放大时,线条也会按比例缩放,或者任何类型的交互性,比如抛出或缩放复位。我使用TouchImageView作为我的ImageView,这是我的代码

代码语言:javascript
复制
public class ParkA extends Activity{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.parka);
        TouchImageView parka = (TouchImageView) findViewById(R.id.parka);
        parka.setImageResource(R.drawable.parka);

        Bitmap lineABmp = Bitmap.createBitmap(480, 640, Bitmap.Config.ARGB_8888);
        Canvas lineACanvas = new Canvas(lineABmp);
        Paint paint = new Paint();
        paint.setColor(Color.GREEN);
        paint.setStrokeWidth(10);
        lineACanvas.drawBitmap(lineABmp,0 ,0, null);
        //lineACanvas.drawLine(60, 64, 60, 500, paint);

        TouchImageView linea = new TouchImageView(this);
        linea = (TouchImageView) findViewById(R.id.parka);
        linea.setImageBitmap(lineABmp);

    }

    @Override
    protected void onResume() {
        super.onResume();


    }

    @Override
    protected void onPause() {


        super.onPause();
    }

    @Override
    protected void onNewIntent(Intent intent) {


    }

    @Override
    public void onBackPressed() {
        //Do Nothing
    }

}

这是我的xml文件

代码语言:javascript
复制
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.kmparkit.ParkA" >

    <com.km.parkit.TouchImageView
        android:id="@+id/parka"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:contentDescription="@string/imageDesc"
        android:scaleType="matrix"  />
        <!-- android:src="@drawable/parka" --> 

</RelativeLayout>

如果我改变了Bitmap.createBitmap(480, 640, Bitmap.Config.ARGB_8888);

进入Bitmap.createBitmap(parka.getWidth(), parka.getHeight(), Bitmap.Config.ARGB_8888);

logcat说宽度和高度必须>0。

如果我drawLine,则只显示绿线本身。

我在这里遗漏了什么,以便创建一个TouhImageView图片,并在上面画线?

最新情况:

这就是解决办法!

代码语言:javascript
复制
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.parka);

        TouchImageView parka = (TouchImageView) findViewById(R.id.parka);
        parka.setImageResource(R.drawable.parka);

        Bitmap lineABmp = ((BitmapDrawable)parka.getDrawable()).getBitmap();
        Bitmap lineAMutBmp = lineABmp.copy(Bitmap.Config.ARGB_8888, true);

        Canvas lineACanvas = new Canvas(lineAMutBmp);
        Paint paint = new Paint();
        paint.setColor(Color.GREEN);
        paint.setStrokeWidth(10);
        lineACanvas.drawLine(82, 1058, 82, 858, paint);

        parka.setImageBitmap(lineAMutBmp);
    }

我必须复制位图,以使其可变,并使用parka.setImageResource();parka.setImageBitmap()在一个TouchImageView中显示图片和线条,同时使用Canvas绘制线条。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-26 17:49:02

试着做这样的事情:

编辑:这应该是可行的;)

代码语言:javascript
复制
    setContentView(R.layout.parka);
    TouchImageView parka = (TouchImageView) findViewById(R.id.parka);
    parka.setImageResource(R.drawable.parka);
    Bitmap lineABmp = ((BitmapDrawable)parka.getDrawable()).getBitmap();

    Bitmap copy = Bitmap.createBitmap(lineABmp);

    Canvas lineACanvas = new Canvas(copy);
    Paint paint = new Paint();
    paint.setColor(Color.GREEN);
    paint.setStrokeWidth(10);
    lineACanvas.drawLine(60, 64, 60, 500, paint);

    parka.setImageBitmap(copy);

愉快编码:D

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30464834

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档