小编iev*_*gen的帖子

如何在画布上画出很多具有良好性能的矩形?

我必须使用扇区,行和座位来渲染电影院大厅地图.目前我有大约1000个座位(填充矩形)可供绘制,我通过调用以下方式为每个座位执行此操作:

canvas.drawRect(seatRect, seatPaint)
Run Code Online (Sandbox Code Playgroud)

我的观点也必须支持缩放,滚动和投掷.表现很糟糕.我尝试通过明确启用硬件加速来改进它,但没有任何改变,它似乎在我的Nexus 4(Api 22)上默认启用

你能否建议任何方法来高速渲染大量的矩形?所以运动,缩放动画很流畅.

自定义视图类代码:

@Override
public void onDraw(Canvas canvas) {
    super.onDraw(canvas);

    canvas.save();
    canvas.scale(mScaleFactor, mScaleFactor); // scaling support
    canvas.translate(mTranslateX, mTranslateY); // scrolling support

    if (mEventMap != null) {
        mEventMap.paint(canvas);
    }

    canvas.restore();
}
Run Code Online (Sandbox Code Playgroud)

EventMap代码:

public void paint(Canvas canvas) {
    for (EventPlace place : places) {
        if (place.isSelected())
            placePaint.setColor(0xFF00FF00);
        else if (place.isAvailable())
            placePaint.setColor(place.getColor());
        else
            placePaint.setColor(0xFF000000);

        canvas.drawRect(place.getBounds(), placePaint);
    }
}
Run Code Online (Sandbox Code Playgroud)

onDraw中调用的所有方法都不会创建任何实例.只有很多矩形......

performance user-interface android 2d canvas

6
推荐指数
1
解决办法
911
查看次数

如何使用JAXB映射XML标记的封闭内容?

我正在尝试使JAXB将标记的内容捕获到Java Bean的某些属性中.这是XML消息的示例:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Film Id="5705" Title="Some title" TitleOrig="Original title">
     The description follows
</Film>
Run Code Online (Sandbox Code Playgroud)

我已经为这个XML消息提出了以下Java Bean,但是我发现映射电影描述时遇到了困难.

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "Film")
@XmlRootElement(name = "Film")
public class Film
{
    @XmlAttribute(name = "Id")
    public Integer id;
    @XmlAttribute(name = "Title")
    public String title;
    @XmlAttribute(name = "TitleOrig")
    public String titleOrig;

    public String description; // How to annotate this property ?
}
Run Code Online (Sandbox Code Playgroud)

任何人都能指出我正确的方向吗?这是一个有效的XML吗?因为我没能在互联网上找到任何解决此任务的方法.

java xml jaxb

3
推荐指数
1
解决办法
229
查看次数

嵌套片段在屏幕旋转后存活

我在Android中面临嵌套片段的问题.当我旋转屏幕时,嵌套片段以某种方式存活.我想出了一个示例来说明这个问题.

public class ParentFragment extends BaseFragment
{
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        return  inflater.inflate(R.layout.fragment_parent, container);
    }

    @Override
    public void onViewCreated(View view, Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);

         getChildFragmentManager()
                 .beginTransaction()
                 .add(getId(), new ParentFragmentChild(), ParentFragmentChild.class.getName())
                 .commit();
    }

    @Override
    public void onResume() {
        super.onResume();
        log.verbose("onResume(), numChildFragments: " + getChildFragmentManager().getFragments().size());
    }     
}

public class ParentFragmentChild extends BaseFragment
{
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        return inflater.inflate(R.layout.fragment_child, null);
    }
}
Run Code Online (Sandbox Code Playgroud)

BaseFragment只记录方法调用.这是我旋转屏幕时看到的.

当Activity最初出现时

ParentFragment? onAttach(): ParentFragment{420d0a98 #0 id=0x7f060064} …
Run Code Online (Sandbox Code Playgroud)

android rotation android-fragments android-nested-fragment

0
推荐指数
1
解决办法
2890
查看次数