gpt4 book ai didi

android - 如何在主从应用程序中使用 Canvas 绘制文本?

转载 作者:行者123 更新时间:2023-11-29 01:55:38 25 4
gpt4 key购买 nike

我想玩 android,所以我拿了一些现有的并进行了修改。它是一个主从应用程序,使用默认设置在 Eclipse 中生成,没有新文件。我获取了位于 com.. 中的 ItemDetailFragment.java 的代码并对其进行了修改,以便它可以在 (0,0) 的屏幕上绘制一些测试

这是我修改过的代码

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_item_detail,
container, false);
//customImageView custom = (customImageView) inflater.inflate(R.layout.fragment_item_detail, container, false);

// Show the dummy content as text in a TextView.
if (mItem != null) {
//((ImageView) rootView.findViewById(R.id.item_detail_)).setImageResource(R.drawable.ic_launcher);
((customImageView) rootView.findViewById(R.id.item_detail__)).invalidate();
}
return rootView;
}
private class customImageView extends View {
/*To clarify I added this class myself b/c the android developer guide on Canvas and Drawables says to*/

public customImageView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
// TODO Auto-generated constructor stub
}
@Override
public void onDraw(Canvas canvas) {
canvas.drawText("Some Example Text", 0, 0, new Paint());
}
}
}

哦,这是我的/res/layout/fragment_item_detail.xml 声明

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >


<TextView
android:id="@+id/item_detail"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="16dp"
android:textIsSelectable="true" />
<!-- Autogenerated -->

<ImageView
android:id="@+id/item_detail_"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<!-- android:src="@drawable/android" /> -->
<!-- I added this in -->

<customImageView
android:id="@+id/item_detail__"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<!-- This is the relevant part, I added this in -->

</LinearLayout>

然而,当应用程序在模拟器上运行时,我得到 this big list of errors

有人可以帮我理解为什么会发生这种情况,以及如何解决它吗?

最佳答案

可能是因为你的View类是private的,试试把它设置为public。此外,在 XML 上添加自定义 View 时,您需要包含它的完整位置,因此如果它位于 com.pkg 包中名为 clazz 的类中,您需要编写

    <com.pkg.clazz.customImageView
... />

关于android - 如何在主从应用程序中使用 Canvas 绘制文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15329385/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com