TextView中异步加载文字,加载不出来???
问题:
重写TextView,在onDraw()中,异步加载文字,结果程序退出,求解决方案???这是源码
一直打印这行代码,Cache value 0x5dc803c8 deleted, size = 112
然后程序退出了。
public class MainActivity extends Activity {
private MyTextView my;
private int y;
@SuppressLint("HandlerLeak")
private Handler handler=new Handler(){
public void handleMessage(Message msg) {
switch(msg.what){
case 10:
int x=(Integer)msg.obj;
my.setHeight(x);
my.invalidate();
break;
}
};
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
my=(MyTextView)findViewById(R.id.view);
my.setHandler(handler);
my.setText(R.string.content);
}
}
public class MyTextView extends TextView {
private final String namespace = "http://www.angellecho.com/";
private String text;
private float textSize;
private float paddingLeft;
private float paddingRight;
private float marginLeft;
private float marginRight;
private int textColor;
private Paint paint1 = new Paint();
private float textShowWidth;
private Handler handler;
public MyTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
// TODO Auto-generated constructor stub
}
public MyTextView(Context context, AttributeSet attrs) {
super(context, attrs);
text = attrs.getAttributeValue("http://schemas.android.com/apk/res/android", "text");
textSize = attrs.getAttributeIntValue(namespace, "textSize", 15);
textColor = attrs.getAttributeIntValue(namespace, "textColor",Color.RED);
paddingLeft = attrs.getAttributeIntValue(namespace, "paddingLeft", 0);
paddingRight = attrs.getAttributeIntValue(namespace, "paddingRight", 0);
marginLeft = attrs.getAttributeIntValue(namespace, "marginLeft", 0);
marginRight = attrs.getAttributeIntValue(namespace, "marginRight", 0);
paint1.setTextSize(textSize);
paint1.setColor(textColor);
paint1.setAntiAlias(true);
textShowWidth = ((Activity) context).getWindowManager().getDefaultDisplay().getWidth() - paddingLeft - paddingRight - marginLeft - marginRight;
}
public MyTextView(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
public void setHandler(Handler handler) {
this.handler = handler;
}
@Override
protected void onDraw(final Canvas canvas) {
Log.i("aaaa","回调了");
new Thread(new MyRun(canvas))
.start();
}
public int _draw(Canvas canvas){
int lineCount = 0;
text = this.getText().toString();//.replaceAll("\n", "\r\n");
if(text==null)return 0;
char[] textCharArray = text.toCharArray();
float drawedWidth = 0;
float charWidth;
for (int i = 0; i < textCharArray.length; i++) {
charWidth = paint1.measureText(textCharArray, i, 1);
if(textCharArray[i]=='\n'){
lineCount++;
drawedWidth = 0;
continue;
}
if (textShowWidth - drawedWidth < charWidth) {
lineCount++;
drawedWidth = 0;
}
canvas.drawText(textCharArray, i, 1, paddingLeft + drawedWidth,
(lineCount + 1) * textSize, paint1);
drawedWidth += charWidth;
}
//setHeight((lineCount + 1) * (int) textSize + 5);
return ((lineCount + 1) * (int) textSize + 5);
}
class MyRun implements Runnable{
Canvas canvas;
public MyRun(Canvas canvas){
this.canvas=canvas;
}
@Override
public void run() {
// TODO Auto-generated method stub
int a=_draw(canvas);
Message msg=handler.obtainMessage(10, a);
handler.sendMessage(msg);
}
}
}
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ae="http://www.angellecho.com/"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.example.com.MyTextView
android:id="@+id/view"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@android:color/darker_gray"
ae:paddingLeft="20"
ae:paddingRight="20"
ae:textSize="30"
/>
</ScrollView>
</RelativeLayout>
<string name="content">卫生部副部长、国务院医改办副主任马晓伟称,公立医院改革试点工作是五项改革的重要任务之一,在国务院选定的17个试点城市,各省政府选定的37个试点城市,超过2000多所公立医院当中同时推开综合体制改革,包括北京有5所医院,深圳所有医院在内的政府举办的医疗机构,都取消了以药补医,采取了这方面的改革。
同时,目前,全国有22个省、431个县级地区已经完成了取消公立医院药品加成,17个省对试点地区的医疗服务价格进行了全面的调整。
马晓伟称,下一阶段的医改工作将通过补偿机制和支付方式的改革来实现公立医院回归公益性。公立医院改革现在进入到深水区,说到底是补偿机制建立的问题。补偿机制的建立,主要取决于三方面的工作,其一是加大政府财政对公立医院的投入,包括基本建设的投入、大型仪器设备的投入、离退休人员资金的投入,以及公共卫生事件的政策性亏损的补贴。马晓伟说,将确保落实这四项投入,使公立医院轻装上阵。
卫生部副部长、国务院医改办副主任马晓伟称,公立医院改革试点工作是五项改革的重要任务之一,在国务院选定的17个试点城市,各省政府选定的37个试点城市,超过2000多所公立医院当中同时推开综合体制改革,包括北京有5所医院,深圳所有医院在内的政府举办的医疗机构,都取消了以药补医,采取了这方面的改革。
同时,目前,全国有22个省、431个县级地区已经完成了取消公立医院药品加成,17个省对试点地区的医疗服务价格进行了全面的调整。
马晓伟称,下一阶段的医改工作将通过补偿机制和支付方式的改革来实现公立医院回归公益性。公立医院改革现在进入到深水区,说到底是补偿机制建立的问题。补偿机制的建立,主要取决于三方面的工作,其一是加大政府财政对公立医院的投入,包括基本建设的投入、大型仪器设备的投入、离退休人员资金的投入,以及公共卫生事件的政策性亏损的补贴。马晓伟说,将确保落实这四项投入,使公立医院轻装上阵。
卫生部副部长、国务院医改办副主任马晓伟称,公立医院改革试点工作是五项改革的重要任务之一,在国务院选定的17个试点城市,各省政府选定的37个试点城市,超过2000多所公立医院当中同时推开综合体制改革,包括北京有5所医院,深圳所有医院在内的政府举办的医疗机构,都取消了以药补医,采取了这方面的改革。
同时,目前,全国有22个省、431个县级地区已经完成了取消公立医院药品加成,17个省对试点地区的医疗服务价格进行了全面的调整。
马晓伟称,下一阶段的医改工作将通过补偿机制和支付方式的改革来实现公立医院回归公益性。公立医院改革现在进入到深水区,说到底是补偿机制建立的问题。补偿机制的建立,主要取决于三方面的工作,其一是加大政府财政对公立医院的投入,包括基本建设的投入、大型仪器设备的投入、离退休人员资金的投入,以及公共卫生事件的政策性亏损的补贴。马晓伟说,将确保落实这四项投入,使公立医院轻装上阵。
卫生部副部长、国务院医改办副主任马晓伟称,公立医院改革试点工作是五项改革的重要任务之一,在国务院选定的17个试点城市,各省政府选定的37个试点城市,超过2000多所公立医院当中同时推开综合体制改革,包括北京有5所医院,深圳所有医院在内的政府举办的医疗机构,都取消了以药补医,采取了这方面的改革。
同时,目前,全国有22个省、431个县级地区已经完成了取消公立医院药品加成,17个省对试点地区的医疗服务价格进行了全面的调整。
马晓伟称,下一阶段的医改工作将通过补偿机制和支付方式的改革来实现公立医院回归公益性。公立医院改革现在进入到深水区,说到底是补偿机制建立的问题。补偿机制的建立,主要取决于三方面的工作,其一是加大政府财政对公立医院的投入,包括基本建设的投入、大型仪器设备的投入、离退休人员资金的投入,以及公共卫生事件的政策性亏损的补贴。马晓伟说,将确保落实这四项投入,使公立医院轻装上阵。
卫生部副部长、国务院医改办副主任马晓伟称,公立医院改革试点工作是五项改革的重要任务之一,在国务院选定的17个试点城市,各省政府选定的37个试点城市,超过2000多所公立医院当中同时推开综合体制改革,包括北京有5所医院,深圳所有医院在内的政府举办的医疗机构,都取消了以药补医,采取了这方面的改革。
同时,目前,全国有22个省、431个县级地区已经完成了取消公立医院药品加成,17个省对试点地区的医疗服务价格进行了全面的调整。
马晓伟称,下一阶段的医改工作将通过补偿机制和支付方式的改革来实现公立医院回归公益性。公立医院改革现在进入到深水区,说到底是补偿机制建立的问题。补偿机制的建立,主要取决于三方面的工作,其一是加大政府财政对公立医院的投入,包括基本建设的投入、大型仪器设备的投入、离退休人员资金的投入,以及公共卫生事件的政策性亏损的补贴。马晓伟说,将确保落实这四项投入,使公立医院轻装上阵。
卫生部副部长、国务院医改办副主任马晓伟称,公立医院改革试点工作是五项改革的重要任务之一,在国务院选定的17个试点城市,各省政府选定的37个试点城市,超过2000多所公立医院当中同时推开综合体制改革,包括北京有5所医院,深圳所有医院在内的政府举办的医疗机构,都取消了以药补医,采取了这方面的改革。
同时,目前,全国有22个省、431个县级地区已经完成了取消公立医院药品加成,17个省对试点地区的医疗服务价格进行了全面的调整。
马晓伟称,下一阶段的医改工作将通过补偿机制和支付方式的改革来实现公立医院回归公益性。公立医院改革现在进入到深水区,说到底是补偿机制建立的问题。补偿机制的建立,主要取决于三方面的工作,其一是加大政府财政对公立医院的投入,包括基本建设的投入、大型仪器设备的投入、离退休人员资金的投入,以及公共卫生事件的政策性亏损的补贴。马晓伟说,将确保落实这四项投入,使公立医院轻装上阵。
卫生部副部长、国务院医改办副主任马晓伟称,公立医院改革试点工作是五项改革的重要任务之一,在国务院选定的17个试点城市,各省政府选定的37个试点城市,超过2000多所公立医院当中同时推开综合体制改革,包括北京有5所医院,深圳所有医院在内的政府举办的医疗机构,都取消了以药补医,采取了这方面的改革。
同时,目前,全国有22个省、431个县级地区已经完成了取消公立医院药品加成,17个省对试点地区的医疗服务价格进行了全面的调整。
马晓伟称,下一阶段的医改工作将通过补偿机制和支付方式的改革来实现公立医院回归公益性。公立医院改革现在进入到深水区,说到底是补偿机制建立的问题。补偿机制的建立,主要取决于三方面的工作,其一是加大政府财政对公立医院的投入,包括基本建设的投入、大型仪器设备的投入、离退休人员资金的投入,以及公共卫生事件的政策性亏损的补贴。马晓伟说,将确保落实这四项投入,使公立医院轻装上阵。
同时,目前,全国有22个省、431个县级地区已经完成了取消公立医院药品加成,17个省对试点地区的医疗服务价格进行了全面的调整。
马晓伟称,下一阶段的医改工作将通过补偿机制和支付方式的改革来实现公立医院回归公益性。公立医院改革现在进入到深水区,说到底是补偿机制建立的问题。补偿机制的建立,主要取决于三方面的工作,其一是加大政府财政对公立医院的投入,包括基本建设的投入、大型仪器设备的投入、离退休人员资金的投入,以及公共卫生事件的政策性亏损的补贴。马晓伟说,将确保落实这四项投入,使公立医院轻装上阵。
卫生部副部长、国务院医改办副主任马晓伟称,公立医院改革试点工作是五项改革的重要任务之一,在国务院选定的17个试点城市,各省政府选定的37个试点城市,超过2000多所公立医院当中同时推开综合体制改革,包括北京有5所医院,深圳所有医院在内的政府举办的医疗机构,都取消了以药补医,采取了这方面的改革。
同时,目前,全国有22个省、431个县级地区已经完成了取消公立医院药品加成,17个省对试点地区的医疗服务价格进行了全面的调整。
马晓伟称,下一阶段的医改工作将通过补偿机制和支付方式的改革来实现公立医院回归公益性。公立医院改革现在进入到深水区,说到底是补偿机制建立的问题。补偿机制的建立,主要取决于三方面的工作,其一是加大政府财政对公立医院的投入,包括基本建设的投入、大型仪器设备的投入、离退休人员资金的投入,以及公共卫生事件的政策性亏损的补贴。马晓伟说,将确保落实这四项投入,使公立医院轻装上阵。
卫生部副部长、国务院医改办副主任马晓伟称,公立医院改革试点工作是五项改革的重要任务之一,在国务院选定的17个试点城市,各省政府选定的37个试点城市,超过2000多所公立医院当中同时推开综合体制改革,包括北京有5所医院,深圳所有医院在内的政府举办的医疗机构,都取消了以药补医,采取了这方面的改革。
同时,目前,全国有22个省、431个县级地区已经完成了取消公立医院药品加成,17个省对试点地区的医疗服务价格进行了全面的调整。
马晓伟称,下一阶段的医改工作将通过补偿机制和支付方式的改革来实现公立医院回归公益性。公立医院改革现在进入到深水区,说到底是补偿机制建立的问题。补偿机制的建立,主要取决于三方面的工作,其一是加大政府财政对公立医院的投入,包括基本建设的投入、大型仪器设备的投入、离退休人员资金的投入,以及公共卫生事件的政策性亏损的补贴。马晓伟说,将确保落实这四项投入,使公立医院轻装上阵。
卫生部副部长、国务院医改办副主任马晓伟称,公立医院改革试点工作是五项改革的重要任务之一,在国务院选定的17个试点城市,各省政府选定的37个试点城市,超过2000多所公立医院当中同时推开综合体制改革,包括北京有5所医院,深圳所有医院在内的政府举办的医疗机构,都取消了以药补医,采取了这方面的改革。
同时,目前,全国有22个省、431个县级地区已经完成了取消公立医院药品加成,17个省对试点地区的医疗服务价格进行了全面的调整。
马晓伟称,下一阶段的医改工作将通过补偿机制和支付方式的改革来实现公立医院回归公益性。公立医院改革现在进入到深水区,说到底是补偿机制建立的问题。补偿机制的建立,主要取决于三方面的工作,其一是加大政府财政对公立医院的投入,包括基本建设的投入、大型仪器设备的投入、离退休人员资金的投入,以及公共卫生事件的政策性亏损的补贴。马晓伟说,将确保落实这四项投入,使公立医院轻装上阵。
卫生部副部长、国务院医改办副主任马晓伟称,公立医院改革试点工作是五项改革的重要任务之一,在国务院选定的17个试点城市,各省政府选定的37个试点城市,超过2000多所公立医院当中同时推开综合体制改革,包括北京有5所医院,深圳所有医院在内的政府举办的医疗机构,都取消了以药补医,采取了这方面的改革。
同时,目前,全国有22个省、431个县级地区已经完成了取消公立医院药品加成,17个省对试点地区的医疗服务价格进行了全面的调整。
马晓伟称,下一阶段的医改工作将通过补偿机制和支付方式的改革来实现公立医院回归公益性。公立医院改革现在进入到深水区,说到底是补偿机制建立的问题。补偿机制的建立,主要取决于三方面的工作,其一是加大政府财政对公立医院的投入,包括基本建设的投入、大型仪器设备的投入、离退休人员资金的投入,以及公共卫生事件的政策性亏损的补贴。马晓伟说,将确保落实这四项投入,使公立医院轻装上阵。
卫生部副部长、国务院医改办副主任马晓伟称,公立医院改革试点工作是五项改革的重要任务之一,在国务院选定的17个试点城市,各省政府选定的37个试点城市,超过2000多所公立医院当中同时推开综合体制改革,包括北京有5所医院,深圳所有医院在内的政府举办的医疗机构,都取消了以药补医,采取了这方面的改革。
同时,目前,全国有22个省、431个县级地区已经完成了取消公立医院药品加成,17个省对试点地区的医疗服务价格进行了全面的调整。
马晓伟称,下一阶段的医改工作将通过补偿机制和支付方式的改革来实现公立医院回归公益性。公立医院改革现在进入到深水区,说到底是补偿机制建立的问题。补偿机制的建立,主要取决于三方面的工作,其一是加大政府财政对公立医院的投入,包括基本建设的投入、大型仪器设备的投入、离退休人员资金的投入,以及公共卫生事件的政策性亏损的补贴。马晓伟说,将确保落实这四项投入,使公立医院轻装上阵。
卫生部副部长、国务院医改办副主任马晓伟称,公立医院改革试点工作是五项改革的重要任务之一,在国务院选定的17个试点城市,各省政府选定的37个试点城市,超过2000多所公立医院当中同时推开综合体制改革,包括北京有5所医院,深圳所有医院在内的政府举办的医疗机构,都取消了以药补医,采取了这方面的改革。
同时,目前,全国有22个省、431个县级地区已经完成了取消公立医院药品加成,17个省对试点地区的医疗服务价格进行了全面的调整。
马晓伟称,下一阶段的医改工作将通过补偿机制和支付方式的改革来实现公立医院回归公益性。公立医院改革现在进入到深水区,说到底是补偿机制建立的问题。补偿机制的建立,主要取决于三方面的工作,其一是加大政府财政对公立医院的投入,包括基本建设的投入、大型仪器设备的投入、离退休人员资金的投入,以及公共卫生事件的政策性亏损的补贴。马晓伟说,将确保落实这四项投入,使公立医院轻装上阵。</string>
</resources>
android
[解决办法]
protected void onDraw(final Canvas canvas) {
Log.i("aaaa","回调了");
new Thread(new MyRun(canvas))
.start();
}