用 Java class Android 画一条线
Draw a Line with a Java class Android
我是 Android(Java) 的新手。
我想用这个画一条线:
public void drawAline(int x1,int y1, int x2, int y2){
Canvas canvas=new Canvas();
paint.setColor(Color.BLACK);
canvas.drawLine(x1,y1,x2,y2,paint);
}
paint.setColor 正在工作,但未划清界线:
通话:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
drawView = new DrawView(this);
drawView.setBackgroundColor(Color.RED);
drawView.drawAline(0,10,1000,10);
setContentView(drawView);
有什么问题?
谢谢!
亲切的问候
丹尼尔
画一条线然后用这段代码简单地画线
public class MainActivity extends Activity {
DrawLine drawLine;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
drawLine = new DrawLine(this);
drawLine.setBackgroundColor(Color.CYAN);
setContentView(drawLine);
}
class DrawLine extends View {
Paint paint = new Paint();
public DrawLine(Context context) {
super(context);
paint.setColor(Color.BLACK);
}
@Override
public void onDraw(Canvas canvas) {
canvas.drawLine(50, 100, 600, 600, paint);
canvas.drawLine(50, 550, 770, 0, paint);
}
}
}
你不能像你想做的那样去做。基本上在 android 中,每个视图即按钮或图像或 EditText 都在 xml 文件中定义,这些文件将连接到您的 java 文件(您也可以在 java 文件中定义视图).在您的情况下,如果您想画一条线,例如将线视为图像。你可以像下面那样做。
1) 首先创建一个 class 扩展 ImageView 并覆盖 onDraw() 方法。
2) 然后在 xml 文件中定义视图
Java class
package com.stack.line;
public class CustomView extends View {
Paint paint = new Paint();
public CustomImageView(Context context) {
super(context);
paint.setAntiAlias(true);
paint.setColor(Color.RED);
}
@Override
public void onDraw(Canvas canvas) {
canvas.drawLine(10, 100, 150, 300, paint);
}
}
custom_view.xml 文件
<LinearLayout
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<com.stack.line.CustomView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/custom"
/>
</LinearLayout>
MainActivity.java
public class MainActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.custom_view);
}
}
希望这对您有所帮助。谢谢
我是 Android(Java) 的新手。 我想用这个画一条线:
public void drawAline(int x1,int y1, int x2, int y2){
Canvas canvas=new Canvas();
paint.setColor(Color.BLACK);
canvas.drawLine(x1,y1,x2,y2,paint);
}
paint.setColor 正在工作,但未划清界线:
通话:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
drawView = new DrawView(this);
drawView.setBackgroundColor(Color.RED);
drawView.drawAline(0,10,1000,10);
setContentView(drawView);
有什么问题?
谢谢!
亲切的问候
丹尼尔
画一条线然后用这段代码简单地画线
public class MainActivity extends Activity {
DrawLine drawLine;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
drawLine = new DrawLine(this);
drawLine.setBackgroundColor(Color.CYAN);
setContentView(drawLine);
}
class DrawLine extends View {
Paint paint = new Paint();
public DrawLine(Context context) {
super(context);
paint.setColor(Color.BLACK);
}
@Override
public void onDraw(Canvas canvas) {
canvas.drawLine(50, 100, 600, 600, paint);
canvas.drawLine(50, 550, 770, 0, paint);
}
}
}
你不能像你想做的那样去做。基本上在 android 中,每个视图即按钮或图像或 EditText 都在 xml 文件中定义,这些文件将连接到您的 java 文件(您也可以在 java 文件中定义视图).在您的情况下,如果您想画一条线,例如将线视为图像。你可以像下面那样做。
1) 首先创建一个 class 扩展 ImageView 并覆盖 onDraw() 方法。
2) 然后在 xml 文件中定义视图
Java class
package com.stack.line;
public class CustomView extends View {
Paint paint = new Paint();
public CustomImageView(Context context) {
super(context);
paint.setAntiAlias(true);
paint.setColor(Color.RED);
}
@Override
public void onDraw(Canvas canvas) {
canvas.drawLine(10, 100, 150, 300, paint);
}
}
custom_view.xml 文件
<LinearLayout
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<com.stack.line.CustomView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/custom"
/>
</LinearLayout>
MainActivity.java
public class MainActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.custom_view);
}
}
希望这对您有所帮助。谢谢