从android.graphics.Path到ImageView

时间:2014-09-03 11:54:38

标签: android path imageview

我有一个android.graphics.Path变量,我想在我的活动中将其转换为ImageView。 我现在做的并且不起作用(但它确实运行没有错误,它只显示一个空白活动)是:

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Path p = ... // some bezier curves
        PathShape pathShape = new PathShape(path, (float)20.0, (float)20.0);
        ShapeDrawable shapeDrawable = new ShapeDrawable(pathShape);
        ImageView testImage = (ImageView) findViewById(R.id.testImage);
        testImage.setImageDrawable(shapeDrawable);
    }

}

相应的activity_main.xml为:

<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:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context="com.tg.MindGames.set.MainActivity">

<ImageView
    android:id="@+id/testImage"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

</RelativeLayout>

我做错了什么以及将Path放入ImageView的最佳做法是什么?

附加信息:我想使用路径在简单的纸牌游戏中绘制卡片的图像。应该在活动上同时显示几张卡片和其他文本字段,卡片应该能够有一个onClickListener。 20.0 x 20.0的大小是任意的,当我在GridView中使用ImageView时,应该稍后更改。

1 个答案:

答案 0 :(得分:2)

所以这里你在视图的背景上画了一个红色三角形:

View v = new View(this);
Path path = new Path();
path.moveTo(0, 1);
path.lineTo(0.5f, 0);
path.lineTo(1, 1);
ShapeDrawable sd = new ShapeDrawable(new PathShape(path, 1, 1));
sd.getPaint().setColor(Color.RED);
v.setBackgroundDrawable(sd);
setContentView(v);