我找到了一些用于线条绘制的代码,但它不起作用。任何人都可以帮我在android中划一条线吗?
这是我的XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/layoutmain">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
</LinearLayout>
这是我的课程代码:
public class DrawPoints extends Activity implements OnTouchListener {
static int i = 0;
static float static_x = 0;
static float static_y = 0;
static float static_x1 = 0;
static float static_y1 = 0;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
View topLayout = this.findViewById(R.id.layoutmain);
// register for events for the view, previously
topLayout.setOnTouchListener((OnTouchListener) this);
}
@Override
public boolean onTouch(View v, MotionEvent event) {
String tag = null;
if (i == 0) {
static_x = event.getX();
static_y = event.getY();
i = 1;
} else {
static_x1 = event.getX();
static_y1 = event.getY();
}
if (i == 1) {
Paint p = new Paint();
p.setColor(Color.WHITE);
p.setStyle(Paint.Style.STROKE);
Canvas canvas = new Canvas();
canvas.drawColor(Color.BLUE);
canvas.drawLine(static_x, static_y, static_x1, static_y1, p);
i = 0;
}
return false;
}
}
答案 0 :(得分:14)
您可以在xml布局中简单地写一下:
<View
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="#cccccc"
android:paddingTop="20dp" />
这将创建一条水平线。
答案 1 :(得分:2)
与penchoco解决方案相比,这是我的解决方案,可以提高绘制性能 163次:
<View
android:id="@+id/line"
android:layout_width="fill_parent"
android:layout_height="1px"
android:background="@drawable/ic_line"
</View>
使用penchoco解决方案的唯一区别是使用9 patch 可绘制的1x1像素而不是颜色。
android:background="@drawable/ic_line"
<强>问题:强> 任何人都可以解释为什么使用9个补丁图像的性能提高了163倍以上,这背后的场景实现了一个神奇的结果?
由于
答案 2 :(得分:0)