提交 030851cb 作者: cbd

1、使用glide网络加载obj,dae文件

上级 487c54f8
...@@ -126,18 +126,18 @@ public class ModelActivity extends AppCompatActivity implements EventListener { ...@@ -126,18 +126,18 @@ public class ModelActivity extends AppCompatActivity implements EventListener {
glView= findViewById(R.id.surfaceView); glView= findViewById(R.id.surfaceView);
handler = new Handler(getMainLooper()); handler = new Handler(getMainLooper());
// Create our 3D scenario // Create our 3D scenario
/* datas.add("https://appmanage.youcai168.cn/villain/villain_obj.obj"); /* datas.add("https://appmanage.youcai168.cn/villain/villain_obj.obj");
datas.add("https://appmanage.youcai168.cn/villain/villain_mtl"); datas.add("https://appmanage.youcai168.cn/villain/villain_mtl");
datas.add("https://appmanage.youcai168.cn/villain/villain_d.png"); datas.add("https://appmanage.youcai168.cn/villain/villain_d.png");
datas.add("https://appmanage.youcai168.cn/villain/villain_n.png");*/ datas.add("https://appmanage.youcai168.cn/villain/villain_n.png");*/
datas.add("https://appmanage.youcai168.cn/androidtest/sj.dae"); /* datas.add("https://appmanage.youcai168.cn/androidtest/sj.dae");
datas.add("https://appmanage.youcai168.cn/androidtest/sj01.jpg"); datas.add("https://appmanage.youcai168.cn/androidtest/sj01.jpg");
datas.add("https://appmanage.youcai168.cn/androidtest/sj02.jpg"); datas.add("https://appmanage.youcai168.cn/androidtest/sj02.jpg");*/
// datas.add("https://appmanage.youcai168.cn/androidtest/33.dae"); datas.add("https://appmanage.youcai168.cn/androidtest/33.dae");
//datas.add("https://appmanage.youcai168.cn/androidtest/cgaxis_models_77_19_01.jpg"); datas.add("https://appmanage.youcai168.cn/androidtest/cgaxis_models_77_19_01.jpg");
// datas.add("https://appmanage.youcai168.cn/androidtest/cgaxis_models_77_19_02.jpg"); datas.add("https://appmanage.youcai168.cn/androidtest/cgaxis_models_77_19_02.jpg");
// datas.add("https://appmanage.youcai168.cn/androidtest/cgaxis_models_77_19_02_bump.jpg"); datas.add("https://appmanage.youcai168.cn/androidtest/cgaxis_models_77_19_02_bump.jpg");
load3dModel(); load3dModel();
} }
...@@ -333,6 +333,7 @@ public class ModelActivity extends AppCompatActivity implements EventListener { ...@@ -333,6 +333,7 @@ public class ModelActivity extends AppCompatActivity implements EventListener {
//下载并保存 //下载并保存
save3dModelResourceToLocal(datas); save3dModelResourceToLocal(datas);
} }
} }
private void initScene(Uri uri,int type) { private void initScene(Uri uri,int type) {
...@@ -421,12 +422,12 @@ public class ModelActivity extends AppCompatActivity implements EventListener { ...@@ -421,12 +422,12 @@ public class ModelActivity extends AppCompatActivity implements EventListener {
Log.i("ModelActivity", "Finished loading"); Log.i("ModelActivity", "Finished loading");
} }
/*private void save3dModelResourceToLocal(List<String> datas) { private void save3dModelResourceToLocal(List<String> datas) {
//// 发起多个请求 //// 发起多个请求
for (String url : datas) { for (String url : datas) {
String fileName = url.substring(url.lastIndexOf('/') + 1); String fileName = url.substring(url.lastIndexOf('/') + 1);
// File destFile = new File(this.getExternalFilesDir("3dModel").toString(), fileName); File destFile = new File(this.getExternalFilesDir("3dModel").toString(), fileName);
File destFile = new File(Environment.getExternalStorageDirectory()+File.separator+"3dModel",fileName); // File destFile = new File(Environment.getExternalStorageDirectory()+File.separator+"3dModel",fileName);
if(destFile.exists()){ if(destFile.exists()){
continue; continue;
} }
...@@ -444,10 +445,28 @@ public class ModelActivity extends AppCompatActivity implements EventListener { ...@@ -444,10 +445,28 @@ public class ModelActivity extends AppCompatActivity implements EventListener {
@Override @Override
public boolean onResourceReady(File resource, Object model, Target<File> target, DataSource dataSource, boolean isFirstResource) { public boolean onResourceReady(File resource, Object model, Target<File> target, DataSource dataSource, boolean isFirstResource) {
// Toast.makeText(context, "下载成功", Toast.LENGTH_SHORT).show(); // Toast.makeText(context, "下载成功", Toast.LENGTH_SHORT).show();
String fileName = url.substring(url.lastIndexOf('/') + 1); String url = model.toString(); // 获取下载的文件的URL
// File destFile = new File(ModelActivity.this.getExternalFilesDir("3dModel").toString(), fileName); String fileName = url.substring(url.lastIndexOf('/') + 1); // 从URL中提取文件名
File destFile = new File(Environment.getExternalStorageDirectory()+File.separator+"3dModel",fileName); // 指定目标目录和文件名
FileUtils.copy(resource, destFile); File destDirectory = new File(ModelActivity.this.getExternalFilesDir("3dModel").toString());
File destFile = new File(destDirectory, fileName);
// 将下载的文件移动到指定目录并重命名
boolean success = resource.renameTo(destFile);
Log.e("file=", "move success= "+success);
if (success) {
// 文件移动成功
// 执行相关操作或显示成功消息
} else {
// 文件移动失败
// 执行相关错误处理或显示失败消息
}
/* String fileName = url.substring(url.lastIndexOf('/') + 1);
File destFile = new File(ModelActivity.this.getExternalFilesDir("3dModel").toString(), fileName);
// File destFile = new File(Environment.getExternalStorageDirectory()+File.separator+"3dModel",fileName);
// 将下载的文件移动到指定目录
resource.renameTo(destFile);
//这个方法下载的文件有时候会多出一些东西
//FileUtils.copy(resource, destFile);*/
// 这里可以执行某些逻辑,如记录日志等 // 这里可以执行某些逻辑,如记录日志等
counter++; counter++;
Log.e("file= ", "url= "+url+" fileName= " + fileName ); Log.e("file= ", "url= "+url+" fileName= " + fileName );
...@@ -463,7 +482,8 @@ public class ModelActivity extends AppCompatActivity implements EventListener { ...@@ -463,7 +482,8 @@ public class ModelActivity extends AppCompatActivity implements EventListener {
// 在这里执行处理逻辑 // 在这里执行处理逻辑
// parseMtlmappic(0x0000ff,objName,mtlName); // parseMtlmappic(0x0000ff,objName,mtlName);
// File objFile = // File objFile =
File objFile = new File(Environment.getExternalStorageDirectory(),objName); File objFile = new File(ModelActivity.this.getExternalFilesDir("3dModel").toString(), objName);
// File objFile = new File(Environment.getExternalStorageDirectory()+File.separator+"3dModel",objName);
if(objFile.isFile() && objFile.exists()){ if(objFile.isFile() && objFile.exists()){
// 0 = obj, 1 = stl, 2 = dae,3 = gtlf // 0 = obj, 1 = stl, 2 = dae,3 = gtlf
int type = 0; int type = 0;
...@@ -472,6 +492,7 @@ public class ModelActivity extends AppCompatActivity implements EventListener { ...@@ -472,6 +492,7 @@ public class ModelActivity extends AppCompatActivity implements EventListener {
}else if(objFile.getAbsolutePath().contains(".dae")){ }else if(objFile.getAbsolutePath().contains(".dae")){
type = 2; type = 2;
} }
ContentUtils.setCurrentDir(objFile.getParentFile());
Uri uri = Uri.parse("file://" + objFile.getAbsolutePath()); Uri uri = Uri.parse("file://" + objFile.getAbsolutePath());
initScene(uri,type); initScene(uri,type);
} }
...@@ -481,10 +502,12 @@ public class ModelActivity extends AppCompatActivity implements EventListener { ...@@ -481,10 +502,12 @@ public class ModelActivity extends AppCompatActivity implements EventListener {
}) })
.preload(); .preload();
} }
}*/ }
private void save3dModelResourceToLocal(List<String> datas) { /**
* 方式2:FileDownloader下载
*/
/*private void save3dModelResourceToLocal(List<String> datas) {
//// 发起多个请求 //// 发起多个请求
for (String url : datas) { for (String url : datas) {
String fileName = url.substring(url.lastIndexOf('/') + 1); String fileName = url.substring(url.lastIndexOf('/') + 1);
...@@ -561,5 +584,5 @@ public class ModelActivity extends AppCompatActivity implements EventListener { ...@@ -561,5 +584,5 @@ public class ModelActivity extends AppCompatActivity implements EventListener {
} }
}).start(); }).start();
} }
} }*/
} }
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论