要求不高只要画一条线就好 但是找不到方法
网上找到的解决方案都是如下格式
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new SampleView(this));
}
private static class SampleView extends View {
private Paint mPaint;
public SampleView(Context context) {
super(context);
setFocusable(true);
mPaint = new Paint();
}
。。。 。。
也就是在
setContentView(new SampleView(this)); 这里调用绘图操作
但是在我的eclipse创建一个新的工程 是如下格式的
public class MainActivity extends ActionBarActivity {
@SuppressLint("WrongCall")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment()).commit();
}
}
是这种格式setContentView(R.layout.activity_main);
如果将R.layout.activity_main换成网上的方式 运行程序就会崩溃
所以我想问一下 这种模式下如何画图呢
------解决思路----------------------
你要画图的话 那么首先 你应该有一个view来展示你所画的图.所以这个时候你就要自定义view,并在自定的view中的onDraw方法中用画笔画图了.并把这个自定view放入你的布局xml文件中去.至于自定于view 你就可以用上面的smapleview的形式
------解决思路----------------------
<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" >
<com.example.androidcircleanimdemo.CircleView
android:layout_width="150dp"
android:layout_height="150dp"
android:layout_centerInParent="true" />
</RelativeLayout>
</RelativeLayout>
这就是使用自定义view的方法
------解决思路----------------------
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Paint.Style;
import android.util.AttributeSet;
import android.view.View;
public class CircleView extends View{
public CircleView(Context context) {
this(context,null);
// TODO Auto-generated constructor stub
}
public CircleView(Context context,AttributeSet attrs) {
this(context,null,0);
// TODO Auto-generated constructor stub
}
public CircleView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
// TODO Auto-generated constructor stub
}
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
Paint mPaint = new Paint();
mPaint.setStyle(Style.STROKE);
mPaint.setColor(Color.GRAY);
mPaint.setStrokeWidth(5);
int width = getMeasuredWidth();
int height = getMeasuredHeight();
int radius = width>height?height/2:width/2;
canvas.drawCircle(width/2, height/2, radius, mPaint);
}
}
这是自定义的view
------解决思路----------------------
在 XML 文件中通过全类名使用你的自定义 View;
<con.demo.view
android:layout_width="match_parent"
android:layout_height="match_parent" >
</con.demo.view>
------解决思路----------------------
再加一个构造函数进去
public ht(Context context,AttributeSet attrs) {
super(context,attrs);
// TODO Auto-generated constructor stub
}