我有一个使用标签的活动,标签切换片段.问题是Fragment在创建时需要几秒钟才能加载,因此切换标签会有大约1或2秒的延迟.为了解决这个问题,我一直试图找到一种方法来显示一个简单的加载图形甚至是一个进度对话框,这样标签就会立即改变并显示一些东西,表明在一切都完成之前就会加载.
我onCreateView的片段方法如下所示:
FrameLayout fl;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
fl = (FrameLayout) inflater.inflate(R.layout.text_layout, container, false);
doHeavyStuff();
return fl;
}
Run Code Online (Sandbox Code Playgroud)
我试过投入doHeavyStuff(),onStart()但这没有任何帮助.并且线程无法帮助,因为doHeavyStuff()涉及操纵视图/ GUI.
有关如何显示片段并在其他所有内容加载时显示"正在加载"信息的任何想法?
谢谢!
马特.
我在包“com.developer.application”下有一个 AppWidgetProvider
我尝试在包“com.developer.application.widgets”下移动这个 AppWidgetProvider 这样做后,我更新了 AndroidManifest 中的所有引用以适应移动。
将更改上传到设备后,当前在主屏幕上的小部件(与上述 AppWidgetProvider 相关联)中断并永远显示“正在加载”图形。
我知道我的指针/包路径没有问题,因为如果我将小部件重新添加到主屏幕,一切正常。
所以简单地说,将 AppWidgetProvider 移动到不同的包并更新所有必要的引用仍然会破坏活动的主屏幕小部件。
有任何想法吗?谢谢!
马特。
我发现很少有关于如何操作Path对象的文档,特别是旋转.
我有一个绘画应用程序,我试图结合"撤消"功能.每当用户的手指触摸视图直到他们的手指被抬起时 - 他们的手指路径将被保存为ArrayList中的路径.撤消方法是这样的:
public void undo() {
//If nothing was drawn, do nothing
int size = path_history.size();
if (size == 0)
return;
//Draw the last saved bitmap
setupView();
//Loop through saved paths, don't paint last path - remove it
for (int i=0; i<size-1; i++)
canvas.drawPath(path_history.get(i), paint);
path_history.remove(size-1);
invalidate();
}
Run Code Online (Sandbox Code Playgroud)
问题是在旋转屏幕后这不起作用,因为我重绘了以90度角旋转的位图(因此,就用户而言,绘图永远不会旋转).重新绘制路径,就好像视图处于原始方向一样,因此路径和原始位图不同步.
为了弥补我的尝试:
Matrix m = new Matrix();
m.preRotate(90);
//I TRIED THIS TOO: m.preRotate(90, bitmap width / 2, bitmap height / 2);
for (int i=0; i<size-1; i++)
path_history.get(i).transform(m);
Run Code Online (Sandbox Code Playgroud)
上面的旋转非常糟糕,甚至没有在屏幕上重绘路径.如果我使用注释掉的旋转,它至少会出现在屏幕上,但仍然很远.如何以与位图旋转相同的方式旋转路径?我正在考虑问题的一部分是我不知道他们旋转的坐标是什么,我没有找到关于它的文档. …
可以说我有一个看起来像这样的表:
+-------+-------+
| data | stuff |
+-------+-------+
| 0.90 | a |
| 0.95 | b |
| 0.98 | c |
| 0.99 | d |
| 1.00 | e |
| 1.01 | f |
| 1.02 | g |
+-------+-------+
Run Code Online (Sandbox Code Playgroud)
我需要最接近"围绕"(上方和下方)给定数字的行.例如,如果用户输入0.96,我需要这两行:
| 0.95 | b |
| 0.98 | c |
Run Code Online (Sandbox Code Playgroud)
如果有完全匹配,我只需要那一行.例如,如果用户输入1,我需要此行:
| 1.00 | e |
Run Code Online (Sandbox Code Playgroud)
MySQL查询只会返回这些特定的行?
这个问题的解决方案似乎不存在,但我很难相信这是不可能的。
想象一下,您有一个带有半透明覆盖层(颜色=黑色,透明度=50%)的图像,无论是覆盖整个图像还是仅覆盖一部分图像,都没有关系。如何将下面的像素转换为其原始颜色,从本质上去除黑色覆盖层。
就像一个简单的代数方程一样,我们应该能够重新排列变量来求解叠加层下的“原始像素”。类似的东西——
原始像素 * 半透明叠加 = 新像素
原始像素 = 半透明叠加 / 新像素
显然这样的方程过度简化了问题,但我认为这已经表达了我的观点。既然我们知道颜色和透明度百分比,为什么我们不能“检索”底层像素的颜色?
编辑:评论中的 Mark Ransom 是正确的,如果您知道透明度是 50%,那么只需乘以 2 即可得到原始颜色。关于如何将其应用于 Photoshop 或 GIMP 中的整个区域,有什么建议吗?当然,逐个像素地进行操作是不可能的。
谢谢你!