为了账号安全,请及时绑定邮箱和手机立即绑定

【App图片开发快速教程】自定义界面

标签:
Android

修改相机组件界面

修改相机组件界面需要继承 TuCameraFragment 类并在子类中重写 loadView() 方法,在 loadView() 方法中使用 getViewById() 方法找到新添加的视图,然后对该视图进行操作。

在布局文件中添加视图

相机组件界面布局文件是 tusdk_impl_component_camera_fragment.xml,放在 TuSDK/res/layout 目录下,建议用户修改界面的时候不要直接在该文件上做修改,而是把该文件复制到自己的项目下的 res/layout 目录中并重命名,比如命名为 custom_camera_fragment_layout.xml,这样可以防止将来升级 SDK 的时候造成覆盖。

找到自己项目下的 custom_camera_fragment_layout.xml 文件,在合适位置添加上自己想要显示的视图。

在子类中重写 loadView() 方法

新建一个类 CustomCameraFragment 继承 TuCameraFragment,并在该类中重写 loadView() 方法,在此方法中找到添加的视图并对其进行操作。

 // 子类继承TuCameraFragment
 public class CustomCameraFragment extends TuCameraFragment
 {
    /**
     * 布局ID
     */
    public static int getLayoutId()
    {
        return R.layout.custom_camera_fragment_layout;
    }

    @Override
    protected void loadView(ViewGroup view)
    {
        super.loadView(view);

        // 在这里使用 getViewById()方法找到新添加的视图
    }
 }

设置相机属性并开启相机

这里需要将子类 CustomCameraFragment 指定为相机组件的控制器类型,将custom_camera_fragment_layout.xml 指定为相机组件的布局 ID,然后再开启相机。

开启相机的步骤跟正常打开相机是一样的,都是先获取 TuCameraFragment 的实例然后打开。

打开相机完整代码如下:

 TuCameraOption option = new TuCameraOption();

 // 控制器类型
 option.setComponentClazz(CustomCameraFragment.class);

 // 设置根视图布局资源ID
 option.setRootViewLayoutId(CustomCameraFragment.getLayoutId());

 TuCameraFragment fragment = option.fragment();
 // 开启相机
 presentModalNavigationActivity(fragment, true);

修改照片美化组件界面

修改照片美化组件界面需要新建一个类继承 TuEditMultipleFragment 类,并在子类中重写 loadView() 方法,在该方法中使用 getViewById(int id) 找到用户添加的视图。

在布局文件中添加视图

照片美化组件界面布局文件是 tusdk_impl_component_edit_multiple_fragment.xml,放在 TuSDK/res/layout目录下,建议用户修改界面的时候不要直接在该文件上做修改,而是把该文件复制到自己的项目下的 res/layout目录中并重命名,比如命名为 custom_multiple_fragment_layout.xml,这样可以防止将来升级 SDK 的时候造成覆盖。

找到自己项目下的 custom_multiple_fragment_layout.xml 文件,在合适位置添加上自己想要显示的视图。

在子类中重写 loadView() 方法

新建一个类 CustomMultipleFragment 继承 TuEditMultipleFragment,并在该类中重写 loadView() 方法,在此方法中找到添加的视图并对其进行操作。

 // 子类继承 TuEditMultipleFragment
 public class CustomMultipleFragment extends TuEditMultipleFragment
 {
    /**
     * 布局ID
     */
    public static int getLayoutId()
    {
        return R.layout.custom_multiple_fragment_layout;
    }

    @Override
    protected void loadView(ViewGroup view)
    {
        super.loadView(view);

        // 在这里使用 getViewById()方法找到新添加的视图
    }
 }

指定控制器类型和根视图资源ID

当把子类和布局文件都写好之后,下面就是把子类和布局文件指定给照片美化组件了。

首先需要获得一个照片美化组件的对象,如下所示:

TuEditMultipleComponent component = null;

// 组件委托
TuSdkComponentDelegate delegate = new TuSdkComponentDelegate()
{
  @Override
  public void onComponentFinished(TuSdkResult result, Error error, TuFragment lastFragment)
  {
    TLog.d("onEditMultipleComponentReaded: %s | %s", result, error);
  }
};

component = TuSdkGeeV1.editMultipleCommponent(MainActivity.this, delegate);

MainActivity 是用户自己的继承自 android.app.Activity 的类,delegate 是对照片美化组件设置的组件委托。

然后是给照片美化组件指定控制器类型和根视图资源ID,如下所示:

 // 指定控制器类型
 component.componentOption().editMultipleOption().setComponentClazz(CustomMultipleFragment.class);
 // 指定根视图资源ID
 component.componentOption().editMultipleOption().setRootViewLayoutId(R.layout.custom_multiple_fragment_layout);

最后给组件设置图片并开启:

// 设置图片
component.setImage(result.image)
   // 设置系统照片
   .setImageSqlInfo(result.imageSqlInfo)
   // 设置临时文件
   .setTempFilePath(result.imageFile)
   // 在组件执行完成后自动关闭组件
   .setAutoDismissWhenCompleted(true)
   // 开启组件
   .showComponent();


原文链接:http://www.apkbus.com/blog-918768-68568.html

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消