<LinearLayout android:id="@+id/svLL" android:orientation="horizontal"
android:layout_width="fill_parent" android:layout_height="fill_parent">
<ScrollView android:id="@+id/sv"
android:layout_width="wrap_content" android:layout_height="wrap_content"
xmlns:android="http://schemas.android.com/apk/res/android">
<!--
<TextView android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/scrollbar_2_text" />
-->
<com.mypackage.MyDrawableView
android:layout_width="fill_parent" android:layout_height="wrap_content" />
</ScrollView>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
public class MyDrawableView extends View {
Context thisContext;
public MyDrawableView(Context context, AttributeSet attr) {
super(context);
thisContext = context;
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
final Paint paint = new Paint();
paint.setColor(Color.BLUE);
paint.setTextSize(12);
canvas.drawText("Blah blah", 0, 100, paint);
}
}
Run Code Online (Sandbox Code Playgroud)
public class MyActivity extends Activity {
// Your member variable declaration here
// Called when the activity is first created.
@Override
public void onCreate(Bundle savedInstanceState) {
// Your code here super.onCreate(savedInstanceState);
setContentView(R.layout.xmllayout);
LinearLayout svll = (LinearLayout) findViewById(R.id.svLL);
svll.setLayoutParams(new LinearLayout.LayoutParams(300, 300));
}
}
Run Code Online (Sandbox Code Playgroud)
我正在设置一个断点,但是断点在onDraw()方法内部从未被击中,出了什么问题?
小智 15
你需要@Override在OnMeasure(int, int)方法调用指定您的视图的大小setMeasuredDimension(int,int).
如果不这样做,则默认方法会将视图设置为具有大小width=0 height=0.因此,甚至根本不打电话onDraw.
该OnMeasure方法调用setMeasuredDimension(int,int),它告诉你有多大的视图.
(所以你需要在方法上获得android屏幕的大小OnMeasure并相应地调用setMeasuredDimension).
| 归档时间: |
|
| 查看次数: |
39836 次 |
| 最近记录: |