huangxinbao

add drop resource

正在显示 100 个修改的文件 包含 1226 行增加312 行删除

要显示太多修改。

为保证性能只显示 100 of 100+ 个文件。

... ... @@ -16,7 +16,10 @@ android {
}
buildTypes {
release {
//是否混淆
minifyEnabled false
zipAlignEnabled true
// shrinkResources true//去除无用的resource文件,第一次使用
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
... ... @@ -32,7 +35,6 @@ dependencies {
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile project(':xdy')
compile files('libs/pldroid-player-1.5.1.jar')
compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.jakewharton:butterknife:8.5.1'
... ... @@ -43,15 +45,16 @@ dependencies {
compile 'org.kymjs.kjframe:kjframe:2.6'
compile 'io.reactivex:rxjava:1.0.9'
compile 'io.reactivex:rxandroid:0.24.0'
compile 'com.squareup.retrofit:retrofit:1.9.0'
// compile 'com.squareup.retrofit:retrofit:1.9.0'
compile 'com.nineoldandroids:library:2.4.0'
compile 'me.yokeyword:fragmentation:0.10.3'
compile 'com.qiniu:happy-dns:0.2.+'
compile 'com.android.support:support-v4:25.3.1'
// compile 'com.android.support:support-v4:25.3.1'
testCompile 'junit:junit:4.12'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1'
compile 'com.qiniu:happy-dns:0.2.+'
compile 'org.greenrobot:eventbus:3.0.0'
compile 'com.flyco.tablayout:FlycoTabLayout_Lib:2.1.2@aar'
compile project(':iOS_Dialog_Library')
compile project(':xdy')
}
... ...
... ... @@ -15,3 +15,10 @@
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}
-keep class com.eventhandle.**{*;}
-keep class com.ntjbase.**{*;}
-keep class com.videoengine.**{*;}
-keep class com.voiceengine.**{*;}
-keep class com.mang.xdy.**{*;}
\ No newline at end of file
... ...
package com.mang.xdy.demo;
package com.mang.xuedianyun.android;
import android.content.Context;
import android.support.test.InstrumentationRegistry;
... ...
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mang.xdy.demo">
package="com.mang.xuedianyun.android">
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
... ... @@ -36,13 +36,13 @@
<application
android:name=".application.XdyApplicaiton"
android:name="com.mang.xuedianyun.android.application.XdyApplicaiton"
android:allowBackup="true"
android:icon="@mipmap/logo"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity"
<activity android:name="com.mang.xuedianyun.android.MainActivity"
android:windowSoftInputMode="adjustPan|stateHidden"
android:screenOrientation="portrait">
<intent-filter>
... ... @@ -51,10 +51,9 @@
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".activity.VideoPlayActivity"
<activity android:name="com.mang.xuedianyun.android.activity.VideoPlayActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden"
>
</activity>
</application>
... ...
package com.mang.xdy.demo;
import android.content.Context;
import android.content.Intent;
import android.content.res.Configuration;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RelativeLayout;
import com.google.gson.Gson;
import com.mang.xdy.demo.activity.VideoPlayActivity;
import com.mang.xdy.demo.bean.JoinClassBean;
import com.mang.xdy.demo.utils.ToastUtil;
import java.util.ArrayList;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
public class MainActivity extends AppCompatActivity {
@BindView(R.id.edt_home_classId)
EditText edtHomeClassId;
@BindView(R.id.edt_home_role)
EditText edtHomeRole;
@BindView(R.id.edt_home_serviceIp)
EditText edtHomeServiceIp;
@BindView(R.id.edt_home_userId)
EditText edtHomeUserId;
@BindView(R.id.btn_home_enter_class)
Button btnHomeEnterClass;
@BindView(R.id.btn_home_enter_publisher)
Button btn_home_enter_publisher;
@BindView(R.id.rl_home_close)
RelativeLayout rl_home_close;
/*一进来就要初始化,让后再调 加入课堂*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
rl_home_close.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
}
@OnClick({R.id.btn_home_enter_class,R.id.btn_home_enter_publisher})
public void onViewClicked(View view) {
if(TextUtils.isEmpty(joinClass())){
return;
}
ArrayList<String> arrayList=new ArrayList<>();
switch (view.getId()){
case R.id.btn_home_enter_class:
Intent intent=new Intent(MainActivity.this, VideoPlayActivity.class);
arrayList.clear();
arrayList.add(joinClass());
arrayList.add("normal");
intent.putStringArrayListExtra("init",arrayList);
startActivity(intent);
break;
case R.id.btn_home_enter_publisher:
Intent intents=new Intent(MainActivity.this, VideoPlayActivity.class);
arrayList.clear();
arrayList.add(joinClass());
arrayList.add("");
intents.putStringArrayListExtra("init",arrayList);
startActivity(intents);
break;
}
}
private String classId="";
private String userRole="";
private String serviceIp="";
private String userId="";
public boolean getLoginInfo(){
classId=edtHomeClassId.getText().toString();
userRole=edtHomeRole.getText().toString();
serviceIp=edtHomeServiceIp.getText().toString();
userId=edtHomeUserId.getText().toString();
if(TextUtils.isEmpty(classId)){
ToastUtil.showToast(getResources().getString(R.string.main_login_error_classId),this);
return false;
}
if(TextUtils.isEmpty(serviceIp)){
ToastUtil.showToast(getResources().getString(R.string.main_login_error_portal),this);
return false;
}
if(TextUtils.isEmpty(userRole)){
ToastUtil.showToast(getResources().getString(R.string.main_login_error_role),this);
return false;
}
if(TextUtils.isEmpty(userId)){
ToastUtil.showToast(getResources().getString(R.string.main_login_error_userId),this);
return false;
}
return true;
}
public String joinClass(){
if(getLoginInfo()) {
JoinClassBean joinClassBean = new JoinClassBean();
joinClassBean.setClassId(Integer.parseInt(classId));
joinClassBean.setUserRole(userRole);
joinClassBean.setPortal(serviceIp);
joinClassBean.setUserId(Integer.parseInt(userId));
joinClassBean.setUserName("");
String joinclass = new Gson().toJson(joinClassBean);
// XdyLogUtil.e("init 初始化", joinclass);
return joinclass;
}else{
return "";
}
}
}
package com.mang.xuedianyun.android;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RelativeLayout;
import com.google.gson.Gson;
import com.mang.xuedianyun.android.activity.VideoPlayActivity;
import com.mang.xuedianyun.android.bean.JoinClassBean;
import com.mang.xuedianyun.android.utils.ToastUtil;
import java.util.ArrayList;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
public class MainActivity extends AppCompatActivity {
@BindView(R.id.edt_home_classId)
EditText edtHomeClassId;
@BindView(R.id.edt_home_role)
EditText edtHomeRole;
@BindView(R.id.edt_home_serviceIp)
EditText edtHomeServiceIp;
@BindView(R.id.edt_home_userId)
EditText edtHomeUserId;
@BindView(R.id.btn_home_enter_class)
Button btnHomeEnterClass;
@BindView(R.id.btn_home_enter_publisher)
Button btn_home_enter_publisher;
@BindView(R.id.rl_home_close)
RelativeLayout rl_home_close;
/*一进来就要初始化,让后再调 加入课堂*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
rl_home_close.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
}
@OnClick({R.id.btn_home_enter_class,R.id.btn_home_enter_publisher})
public void onViewClicked(View view) {
if(TextUtils.isEmpty(joinClass())){
return;
}
ArrayList<String> arrayList=new ArrayList<>();
switch (view.getId()){
case R.id.btn_home_enter_class:
Intent intent=new Intent(MainActivity.this, VideoPlayActivity.class);
arrayList.clear();
arrayList.add(joinClass());
arrayList.add("normal");
intent.putStringArrayListExtra("init",arrayList);
startActivity(intent);
break;
case R.id.btn_home_enter_publisher:
Intent intents=new Intent(MainActivity.this, VideoPlayActivity.class);
arrayList.clear();
arrayList.add(joinClass());
arrayList.add("");
intents.putStringArrayListExtra("init",arrayList);
startActivity(intents);
break;
}
}
private String classId="";
private String userRole="";
private String serviceIp="";
private String userId="";
public boolean getLoginInfo(){
classId=edtHomeClassId.getText().toString();
userRole=edtHomeRole.getText().toString();
serviceIp=edtHomeServiceIp.getText().toString();
userId=edtHomeUserId.getText().toString();
if(TextUtils.isEmpty(classId)){
ToastUtil.showToast(getResources().getString(R.string.main_login_error_classId),this);
return false;
}
if(TextUtils.isEmpty(serviceIp)){
ToastUtil.showToast(getResources().getString(R.string.main_login_error_portal),this);
return false;
}
if(TextUtils.isEmpty(userRole)){
ToastUtil.showToast(getResources().getString(R.string.main_login_error_role),this);
return false;
}
if(TextUtils.isEmpty(userId)){
ToastUtil.showToast(getResources().getString(R.string.main_login_error_userId),this);
return false;
}
return true;
}
public String joinClass(){
if(getLoginInfo()) {
JoinClassBean joinClassBean = new JoinClassBean();
joinClassBean.setClassId(Integer.parseInt(classId));
joinClassBean.setUserRole(userRole);
joinClassBean.setPortal(serviceIp);
joinClassBean.setUserId(Integer.parseInt(userId));
joinClassBean.setUserName("");
String joinclass = new Gson().toJson(joinClassBean);
// XdyLogUtil.e("init 初始化", joinclass);
return joinclass;
}else{
return "";
}
}
}
... ...
... ... @@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.mang.xdy.demo.adapter;
package com.mang.xuedianyun.android.adapter;
import android.content.Context;
import android.text.TextUtils;
... ... @@ -28,12 +28,12 @@ import android.widget.TextView;
import com.mang.xdy.common.Constants;
import com.mang.xdy.utils.SPUtil;
import com.mang.xdy.demo.R;
import com.mang.xdy.demo.bean.JoinClassSuccessEntity;
import com.mang.xdy.demo.bean.Message;
import com.mang.xdy.demo.fragment.ChatFragment;
import com.mang.xdy.demo.utils.JsonUtil;
import com.mang.xdy.demo.widget.chat.UrlUtils;
import com.mang.xuedianyun.android.R;
import com.mang.xuedianyun.android.bean.JoinClassSuccessEntity;
import com.mang.xuedianyun.android.bean.Message;
import com.mang.xuedianyun.android.fragment.ChatFragment;
import com.mang.xuedianyun.android.utils.JsonUtil;
import com.mang.xuedianyun.android.widget.chat.UrlUtils;
import org.kymjs.kjframe.KJBitmap;
... ...
... ... @@ -13,14 +13,14 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.mang.xdy.demo.adapter;
package com.mang.xuedianyun.android.adapter;
import android.widget.AbsListView;
import android.widget.ImageView;
import com.mang.xdy.demo.R;
import com.mang.xdy.demo.bean.Faceicon;
import com.mang.xuedianyun.android.R;
import com.mang.xuedianyun.android.bean.Faceicon;
import org.kymjs.kjframe.KJBitmap;
import org.kymjs.kjframe.widget.AdapterHolder;
... ...
... ... @@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.mang.xdy.demo.adapter;
package com.mang.xuedianyun.android.adapter;
import android.graphics.Bitmap;
import android.os.Bundle;
... ... @@ -23,13 +23,13 @@ import android.support.v4.app.FragmentStatePagerAdapter;
import android.widget.ImageView;
import com.mang.xdy.demo.R;
import com.mang.xdy.demo.widget.chat.ChatFunctionFragment;
import com.mang.xdy.demo.widget.chat.FacePageFragment;
import com.mang.xdy.demo.widget.chat.KJChatKeyboard;
import com.mang.xdy.demo.widget.chat.OnOperationListener;
import com.mang.xdy.demo.widget.chat.PagerSlidingTabStrip;
import com.mang.xdy.demo.widget.emoji.EmojiPageFragment;
import com.mang.xuedianyun.android.R;
import com.mang.xuedianyun.android.widget.chat.ChatFunctionFragment;
import com.mang.xuedianyun.android.widget.chat.FacePageFragment;
import com.mang.xuedianyun.android.widget.chat.KJChatKeyboard;
import com.mang.xuedianyun.android.widget.chat.OnOperationListener;
import com.mang.xuedianyun.android.widget.chat.PagerSlidingTabStrip;
import com.mang.xuedianyun.android.widget.emoji.EmojiPageFragment;
import org.kymjs.kjframe.bitmap.BitmapCreate;
... ...
package com.mang.xdy.demo.adapter;
package com.mang.xuedianyun.android.adapter;
/**
* Created by huang on 2017/4/9.
... ... @@ -9,9 +9,8 @@ import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import com.mang.xdy.demo.fragment.ChatFragment;
import com.mang.xdy.demo.fragment.DocFragment;
import com.mang.xdy.demo.fragment.PageFragment;
import com.mang.xuedianyun.android.fragment.ChatFragment;
import com.mang.xuedianyun.android.fragment.DocFragment;
import java.util.ArrayList;
import java.util.List;
... ...
package com.mang.xdy.demo.application;
package com.mang.xuedianyun.android.application;
import android.app.Activity;
import android.app.Application;
import android.content.Context;
import com.mang.xdy.core.XdySdk;
import com.mang.xdy.demo.utils.ResUtil;
import com.mang.xuedianyun.android.utils.ResUtil;
/**
* Created by abao on 2017/3/30.
... ...
package com.mang.xdy.demo.bean;
package com.mang.xuedianyun.android.bean;
import java.util.List;
import java.util.List;
/**
* Created by Admin on 2017/3/27.
... ...
... ... @@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.mang.xdy.demo.bean;
package com.mang.xuedianyun.android.bean;
import java.io.Serializable;
... ...
package com.mang.xdy.demo.bean;
package com.mang.xuedianyun.android.bean;
/**
* Created by abao on 2017/4/10. 加入课堂
... ...
... ... @@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.mang.xdy.demo.bean;
package com.mang.xuedianyun.android.bean;
/**
* 聊天消息javabean
... ...
package com.mang.xdy.demo.bean;
package com.mang.xuedianyun.android.bean;
/**
* Created by Admin on 2017/3/26.
... ...
package com.mang.xdy.demo.bean;
package com.mang.xuedianyun.android.bean;
public class ResponseEntity {
private String type;
... ...
package com.mang.xdy.demo.bean;
package com.mang.xuedianyun.android.bean;
// FIXME generate failure method set and get MediaId
// FIXME generate failure field _$Replay151
... ...
package com.mang.xdy.demo.dialog;
package com.mang.xuedianyun.android.dialog;
import android.view.View;
import android.view.animation.Interpolator;
... ...
package com.mang.xdy.demo.dialog;
package com.mang.xuedianyun.android.dialog;
import android.app.Dialog;
import android.content.Context;
... ... @@ -15,7 +15,7 @@ import android.view.Window;
import android.view.WindowManager.LayoutParams;
import android.widget.LinearLayout;
import com.mang.xdy.demo.utils.DisplayUtil;
import com.mang.xuedianyun.android.utils.DisplayUtil;
import com.nineoldandroids.animation.Animator;
import java.lang.ref.WeakReference;
... ...
package com.mang.xdy.demo.dialog;
package com.mang.xuedianyun.android.dialog;
import android.content.Context;
import android.view.Gravity;
... ...
package com.mang.xdy.demo.dialog;
package com.mang.xuedianyun.android.dialog;
import android.content.Context;
import android.view.MotionEvent;
... ...
package com.mang.xdy.demo.dialog;
package com.mang.xuedianyun.android.dialog;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
... ...
package com.mang.xdy.demo.dialog;
package com.mang.xuedianyun.android.dialog;
import android.content.Context;
import android.graphics.Color;
... ... @@ -9,7 +9,7 @@ import android.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.mang.xdy.demo.R;
import com.mang.xuedianyun.android.R;
public class NormalDialog extends BaseDialog {
... ...
package com.mang.xdy.demo.dialog;
package com.mang.xuedianyun.android.dialog;
import android.content.Context;
import android.graphics.Color;
... ... @@ -9,7 +9,7 @@ import android.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.mang.xdy.demo.R;
import com.mang.xuedianyun.android.R;
/**
... ...
package com.mang.xdy.demo.dialog;
package com.mang.xuedianyun.android.dialog;
public interface OnBtnClick {
void onBtnClick();
... ...
package com.mang.xdy.demo.dialog;
package com.mang.xuedianyun.android.dialog;
public interface OnBtnLeftClick {
void onBtnLeftClick();
... ...
package com.mang.xdy.demo.dialog;
package com.mang.xuedianyun.android.dialog;
public interface OnBtnRightClick {
void onBtnRightClick();
... ...
package com.mang.xdy.demo.fragment;
package com.mang.xuedianyun.android.fragment;
import android.content.Context;
import android.os.Bundle;
... ... @@ -18,17 +18,17 @@ import com.google.gson.Gson;
import com.mang.xdy.common.Constants;
import com.mang.xdy.utils.SPUtil;
import com.mang.xdy.core.XdySdk;
import com.mang.xdy.demo.R;
import com.mang.xdy.demo.adapter.ChatAdapter;
import com.mang.xdy.demo.bean.ChatMsgEntity;
import com.mang.xdy.demo.bean.Faceicon;
import com.mang.xdy.demo.bean.JoinClassSuccessEntity;
import com.mang.xdy.demo.bean.Message;
import com.mang.xdy.demo.bean.SendChatMsgEntity;
import com.mang.xdy.demo.utils.JsonUtil;
import com.mang.xdy.demo.widget.chat.KJChatKeyboard;
import com.mang.xdy.demo.widget.chat.OnOperationListener;
import com.mang.xdy.demo.widget.emoji.DisplayRules;
import com.mang.xuedianyun.android.R;
import com.mang.xuedianyun.android.adapter.ChatAdapter;
import com.mang.xuedianyun.android.bean.ChatMsgEntity;
import com.mang.xuedianyun.android.bean.Faceicon;
import com.mang.xuedianyun.android.bean.JoinClassSuccessEntity;
import com.mang.xuedianyun.android.bean.Message;
import com.mang.xuedianyun.android.bean.SendChatMsgEntity;
import com.mang.xuedianyun.android.utils.JsonUtil;
import com.mang.xuedianyun.android.widget.chat.KJChatKeyboard;
import com.mang.xuedianyun.android.widget.chat.OnOperationListener;
import com.mang.xuedianyun.android.widget.emoji.DisplayRules;
import com.mang.xdy.listener.ObserverListener;
import com.mang.xdy.utils.XdyLogUtil;
... ...
package com.mang.xdy.demo.fragment;
package com.mang.xuedianyun.android.fragment;
import android.content.Context;
import android.graphics.Bitmap;
... ... @@ -11,21 +11,20 @@ import android.support.v4.app.Fragment;
import android.text.TextUtils;
import android.util.DisplayMetrics;
import android.view.LayoutInflater;
import android.view.SurfaceView;
import android.view.View;
import android.view.ViewGroup;
import com.bumptech.glide.Glide;
import com.mang.xdy.common.Constants;
import com.mang.xdy.core.XdySdk;
import com.mang.xdy.demo.R;
import com.mang.xdy.demo.base.BaseRunnable;
import com.mang.xdy.demo.bean.DocEntity;
import com.mang.xdy.demo.bean.WhiteboardUpdateEntity;
import com.mang.xdy.demo.bean.WrapDocBitMapEntity;
import com.mang.xdy.demo.utils.JsonUtil;
import com.mang.xdy.demo.utils.ToastUtil;
import com.mang.xdy.demo.widget.CanvasView;
import com.mang.xuedianyun.android.R;
import com.mang.xuedianyun.android.base.BaseRunnable;
import com.mang.xuedianyun.android.bean.DocEntity;
import com.mang.xuedianyun.android.bean.WhiteboardUpdateEntity;
import com.mang.xuedianyun.android.bean.WrapDocBitMapEntity;
import com.mang.xuedianyun.android.utils.JsonUtil;
import com.mang.xuedianyun.android.utils.ToastUtil;
import com.mang.xuedianyun.android.widget.CanvasView;
import com.mang.xdy.listener.ObserverListener;
import com.mang.xdy.utils.XdyLogUtil;
... ... @@ -85,7 +84,7 @@ public class DocFragment extends Fragment implements ObserverListener{
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
ToastUtil.showToastshort("图片加载失败",mContext);
ToastUtil.showToastshort(getResources().getString(R.string.imge_load_error),mContext);
}
};
... ... @@ -99,17 +98,15 @@ public class DocFragment extends Fragment implements ObserverListener{
public void init(){
Bundle arguments = getArguments();
if(arguments!=null)
replay = arguments.getBoolean("replay");
DisplayMetrics metric = new DisplayMetrics();
getWindowWith(metric);
docUrlTransformBitmap(null);
// mCanvasView.setZOrderMediaOverlay(false);
// mCanvasView.setZOrderOnTop(false);
//// mCanvasView.getHolder().setFormat(SurfaceView.TRANSPARENT);
// mCanvasView.getHolder().setFormat(SurfaceView.TRANSPARENT);
if(replay) {
mCanvasView.setZOrderMediaOverlay(true);
}
}
private void getWindowWith(DisplayMetrics metric) {
... ... @@ -237,7 +234,7 @@ public class DocFragment extends Fragment implements ObserverListener{
public void call(WrapDocBitMapEntity resource) {
if (resource.getBitmap() == null) {
ToastUtil.showToastshort("图片获取失败",mContext);
ToastUtil.showToastshort(getResources().getString(R.string.imge_load_error),mContext);
Bitmap bitmap = getEmptyBitmap();
mCanvasView.setBitmap(bitmap, false);
} else {
... ...
package com.mang.xdy.demo.fragment;
package com.mang.xuedianyun.android.fragment;
import android.os.Bundle;
... ... @@ -9,7 +9,7 @@ import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.mang.xdy.demo.R;
import com.mang.xuedianyun.android.R;
/**
... ...
package com.mang.xdy.demo.fragment;
package com.mang.xuedianyun.android.fragment;
import android.os.Bundle;
... ... @@ -7,12 +7,13 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.mang.xdy.demo.R;
import com.mang.xuedianyun.android.R;
/**
* A simple {@link Fragment} subclass.
* Use the {@link PublishFragment#newInstance} factory method to
* create an instance of this fragment.
* @deprecated
*/
public class PublishFragment extends Fragment {
// TODO: Rename parameter arguments, choose names that match
... ...
package com.mang.xdy.demo.utils;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context;
import android.content.res.Resources;
import android.graphics.Rect;
import android.util.DisplayMetrics;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
package com.mang.xuedianyun.android.utils;
import android.annotation.SuppressLint;
import android.app.Activity;
... ...
package com.mang.xdy.demo.utils;
package com.mang.xuedianyun.android.utils;
import android.text.TextUtils;
import android.util.Log;
... ...
package com.mang.xdy.demo.utils;
import android.content.Context;
import android.content.res.Resources;
import android.support.annotation.StringRes;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
package com.mang.xuedianyun.android.utils;
import android.content.Context;
import android.content.res.Resources;
... ...
package com.mang.xdy.demo.utils;
package com.mang.xuedianyun.android.utils;
import android.content.Context;
import android.widget.Toast;
... ...
... ... @@ -11,7 +11,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.mang.xdy.demo.utils.cache;
package com.mang.xuedianyun.android.utils.cache;
import android.content.Context;
import android.graphics.Bitmap;
... ...
package com.mang.xdy.demo.utils.cache;
package com.mang.xuedianyun.android.utils.cache;
import android.graphics.Bitmap;
import android.graphics.drawable.Drawable;
... ...
package com.mang.xdy.demo.widget;
package com.mang.xuedianyun.android.widget;
import android.content.Context;
import android.graphics.Bitmap;
... ... @@ -17,13 +17,12 @@ import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import com.mang.xdy.demo.R;
import com.mang.xdy.demo.bean.AnnotaionEntity;
import com.mang.xdy.demo.bean.PointGroupEntity;
import com.mang.xdy.demo.bean.PointXY;
import com.mang.xdy.demo.utils.DisplayUtil;
import com.mang.xdy.demo.utils.ResUtil;
import com.mang.xdy.utils.XdyLogUtil;
import com.mang.xuedianyun.android.R;
import com.mang.xuedianyun.android.bean.AnnotaionEntity;
import com.mang.xuedianyun.android.bean.PointGroupEntity;
import com.mang.xuedianyun.android.bean.PointXY;
import com.mang.xuedianyun.android.utils.DisplayUtil;
import com.mang.xuedianyun.android.utils.ResUtil;
import java.util.ArrayList;
import java.util.Iterator;
... ...
package com.mang.xuedianyun.android.widget.answersheet;
import android.content.Context;
import android.os.CountDownTimer;
import android.util.AttributeSet;
import android.view.Display;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.CheckBox;
import android.widget.LinearLayout;
import android.widget.RadioButton;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.mang.xuedianyun.android.R;
import com.mang.xuedianyun.android.utils.ToastUtil;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
/**
* Created by abao on 2017/5/5.
* @deprecated
*/
public class AnswerSheetView extends RelativeLayout {
/*单选多选类型*/
public final static int ANSWER_TYPE_SINGLE_OR_MORE = 1;
/*对错类型*/
public final static int ANSWER_TYPE_RIGHT_OR_WRONG = 2;
/*填空*/
public final static int ANSWER_TYPE_FILLING = 3;
/*单前的type*/
private static int ANSWER_CURRENT_TYPE = 1;
/*倒计时时间 s*/
public static int ANSWER_TIMEOUT = 30;
@BindView(R.id.tv_exam_countdown)
TextView tvExamCountdown;
@BindView(R.id.rel_home_tv_exam_countdown)
RelativeLayout relHomeTvExamCountdown;
@BindView(R.id.cb_exam_A)
CheckBox cbExamA;
@BindView(R.id.cb_exam_B)
CheckBox cbExamB;
@BindView(R.id.cb_exam_C)
CheckBox cbExamC;
@BindView(R.id.cb_exam_D)
CheckBox cbExamD;
@BindView(R.id.ll_exam_SingleOrMore)
LinearLayout llExamSingleOrMore;
@BindView(R.id.rb_exam_R)
RadioButton rbExamR;
@BindView(R.id.rb_exam_W)
RadioButton rbExamW;
@BindView(R.id.ll_exam_selectRightOrWrong)
LinearLayout llExamSelectRightOrWrong;
@BindView(R.id.ll_exam_filling)
LinearLayout llExamFilling;
@BindView(R.id.tv_exam_up)
TextView tvExamUp;
@BindView(R.id.tv_exam_cancle)
TextView tvExamCancle;
@BindView(R.id.ll_exam_submit)
LinearLayout llExamSubmit;
@BindView(R.id.rel_exam_layout)
RelativeLayout relExamLayout;
@BindView(R.id.ll_exam_answer)
LinearLayout llExamAnswer;
private AnswerCount mAnswerCount;
private StringBuffer sb = new StringBuffer();
private Context mContext;
private String character_close="关闭";
private String character_cancle="放弃";
Display display;
private OnAnswerLayoutChangeListener onAnswerLayoutChangeListener;
public interface OnAnswerLayoutChangeListener{
/**
* 改变显示布局的大小
* @param
*/
void setAnswerSheetFramLayout(int num);
void setAnswerSheetNormal(int num);
}
public void setOnAnswerLayoutChangeListener(OnAnswerLayoutChangeListener onAnswerLayoutChangeListener){
this.onAnswerLayoutChangeListener=onAnswerLayoutChangeListener;
}
public AnswerSheetView(Context context) {
this(context, null);
}
public AnswerSheetView(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public AnswerSheetView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
mContext = context;
View view = initView(context);
this.addView(view);
}
public View initView(Context context) {
View view = LayoutInflater.from(context).inflate(R.layout.item_answer, null);
ButterKnife.bind(this, view);
return view;
}
/*选择答题类型*/
public void selectAnswerSheetType(int type) {
tvExamCountdown.setText("_s");
llExamAnswer.setVisibility(View.GONE);
tvExamUp.setVisibility(View.VISIBLE);
tvExamCancle.setText(character_cancle);
switch (type) {
case ANSWER_TYPE_SINGLE_OR_MORE:
ANSWER_CURRENT_TYPE = ANSWER_TYPE_SINGLE_OR_MORE;
llExamSingleOrMore.setVisibility(View.VISIBLE);
llExamSelectRightOrWrong.setVisibility(View.GONE);
llExamFilling.setVisibility(View.GONE);
break;
case ANSWER_TYPE_RIGHT_OR_WRONG:
ANSWER_CURRENT_TYPE = ANSWER_TYPE_RIGHT_OR_WRONG;
llExamSingleOrMore.setVisibility(View.GONE);
llExamSelectRightOrWrong.setVisibility(View.VISIBLE);
llExamFilling.setVisibility(View.GONE);
break;
case ANSWER_TYPE_FILLING:
ANSWER_CURRENT_TYPE = ANSWER_TYPE_FILLING;
llExamSingleOrMore.setVisibility(View.GONE);
llExamSelectRightOrWrong.setVisibility(View.GONE);
llExamFilling.setVisibility(View.VISIBLE);
break;
}
}
@OnClick({R.id.tv_exam_up, R.id.tv_exam_cancle})
public void onViewClicked(View view) {
switch (view.getId()) {
case R.id.tv_exam_up:
//提交需要获取结果,清除数据,时间清理
// relExamLayout.setVisibility(GONE);
handleAnswer(ANSWER_CURRENT_TYPE);
ToastUtil.showToastshort("选择答案:" + sb.toString() + sb.length(), mContext);
recoverStatus();
setSubmitAnswer();
break;
case R.id.tv_exam_cancle:
recoverStatus();
// if(character_cancle.equals(tvExamCancle)) {
// setAnsNormalLayout(53);
// }else{
//
// }
if(relExamLayout.isShown()){
relExamLayout.setVisibility(GONE);
}
break;
}
}
/*开始倒计时*/
public void startCountTimer(int time) {
ANSWER_TIMEOUT = time;
cancleCountTimer();
mAnswerCount = new AnswerCount(ANSWER_TIMEOUT * 1000, 1000);
mAnswerCount.start();
//提交需要获取结果,清除数据,时间清理
relExamLayout.setVisibility(VISIBLE);
}
/*销毁倒计时*/
public void cancleCountTimer() {
if (mAnswerCount != null) {
mAnswerCount.cancel();
}
}
/**
* 处理结果,拼装答案
*
* @param type
*/
public void handleAnswer(int type) {
switch (type) {
case ANSWER_TYPE_SINGLE_OR_MORE:
handleSingleOrMore();
break;
case ANSWER_TYPE_RIGHT_OR_WRONG:
handleRightOrWrong();
break;
case ANSWER_TYPE_FILLING:
break;
}
}
/*单选,多选答案拼接*/
public void handleSingleOrMore() {
sb.setLength(0);
if (cbExamA.isChecked()) {
sb.append("A");
}
if (cbExamB.isChecked()) {
sb.append("B");
}
if (cbExamC.isChecked()) {
sb.append("C");
}
if (cbExamD.isChecked()) {
sb.append("D");
}
}
/*处理对错*/
public void handleRightOrWrong() {
sb.setLength(0);
if (rbExamR.isChecked()) {
sb.append("对");
} else {
sb.append("错");
}
}
/*恢复状态*/
public void recoverStatus() {
switch (ANSWER_CURRENT_TYPE) {
case ANSWER_TYPE_SINGLE_OR_MORE:
cbExamA.setChecked(false);
cbExamB.setChecked(false);
cbExamC.setChecked(false);
cbExamD.setChecked(false);
break;
case ANSWER_TYPE_RIGHT_OR_WRONG:
rbExamR.setChecked(true);
rbExamW.setChecked(false);
break;
case ANSWER_TYPE_FILLING:
break;
}
}
/*隐藏所有题目*/
private void hideAllTitle(){
llExamSingleOrMore.setVisibility(View.GONE);
llExamSelectRightOrWrong.setVisibility(View.GONE);
llExamFilling.setVisibility(View.GONE);
}
/*设置显示答案布局大小*/
public void setAnswerLayout(int num){
if(onAnswerLayoutChangeListener!=null) {
onAnswerLayoutChangeListener.setAnswerSheetFramLayout(num);
}
}
/*设置显示答案布局大小*/
public void setAnsNormalLayout(int num){
if(onAnswerLayoutChangeListener!=null) {
onAnswerLayoutChangeListener.setAnswerSheetNormal(num);
}
}
/*提交答案 设置*/
private void setSubmitAnswer(){
hideAllTitle();
llExamAnswer.setVisibility(View.VISIBLE);
cancleCountTimer();
tvExamUp.setVisibility(View.GONE);
tvExamCancle.setText(character_close);
setAnswerLayout(100);
}
@OnClick(R.id.ll_exam_answer)
public void onViewClicked() {
}
/*倒计时处理*/
class AnswerCount extends CountDownTimer {
/**
* @param millisInFuture The number of millis in the future from the call
* to {@link #start()} until the countdown is done and {@link #onFinish()}
* is called.
* @param countDownInterval The interval along the way to receive
* {@link #onTick(long)} callbacks.
*/
public AnswerCount(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
}
@Override
public void onTick(long millisUntilFinished) {
if (millisUntilFinished < 10) {
tvExamCountdown.setText(" " + millisUntilFinished / 1000 + "s");
} else {
tvExamCountdown.setText(millisUntilFinished / 1000 + "s");
}
}
@Override
public void onFinish() {
//这个结束应该做自动提交答案的工作
tvExamCountdown.setText("0s");
}
}
}
... ...
... ... @@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.mang.xdy.demo.widget.chat;
package com.mang.xuedianyun.android.widget.chat;
import android.os.Bundle;
import android.view.LayoutInflater;
... ... @@ -22,7 +22,7 @@ import android.view.ViewGroup;
import android.widget.LinearLayout;
import com.mang.xdy.demo.R;
import com.mang.xuedianyun.android.R;
import org.kymjs.kjframe.ui.SupportFragment;
... ...
... ... @@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.mang.xdy.demo.widget.chat;
package com.mang.xuedianyun.android.widget.chat;
import android.app.Activity;
import android.graphics.Color;
... ... @@ -36,9 +36,9 @@ import android.widget.RadioButton;
import android.widget.RadioGroup;
import com.mang.xdy.demo.R;
import com.mang.xdy.demo.adapter.FaceAdapter;
import com.mang.xdy.demo.bean.Faceicon;
import com.mang.xuedianyun.android.R;
import com.mang.xuedianyun.android.adapter.FaceAdapter;
import com.mang.xuedianyun.android.bean.Faceicon;
import org.kymjs.kjframe.ui.SupportFragment;
import org.kymjs.kjframe.utils.StringUtils;
... ...
... ... @@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.mang.xdy.demo.widget.chat;
package com.mang.xuedianyun.android.widget.chat;
import android.app.Activity;
import android.content.Context;
... ... @@ -29,8 +29,8 @@ import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import com.mang.xdy.demo.R;
import com.mang.xdy.demo.adapter.FaceCategroyAdapter;
import com.mang.xuedianyun.android.R;
import com.mang.xuedianyun.android.adapter.FaceCategroyAdapter;
import java.util.List;
... ...
... ... @@ -13,10 +13,10 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.mang.xdy.demo.widget.chat;
package com.mang.xuedianyun.android.widget.chat;
import com.mang.xdy.demo.bean.Faceicon;
import com.mang.xuedianyun.android.bean.Faceicon;
/**
* 表情栏顶部按钮的监听器
... ...
... ... @@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.mang.xdy.demo.widget.chat;
package com.mang.xuedianyun.android.widget.chat;
import android.annotation.SuppressLint;
import android.content.Context;
... ... @@ -39,7 +39,7 @@ import android.widget.LinearLayout;
import android.widget.TextView;
import com.mang.xdy.demo.R;
import com.mang.xuedianyun.android.R;
import java.util.Locale;
... ...
... ... @@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.mang.xdy.demo.widget.chat;
package com.mang.xuedianyun.android.widget.chat;
import android.graphics.Rect;
import android.view.View;
... ...
package com.mang.xdy.demo.widget.chat;
package com.mang.xuedianyun.android.widget.chat;
import android.content.Context;
import android.content.Intent;
... ...
package com.mang.xuedianyun.android.widget.dialog;
import android.app.Dialog;
import android.content.Context;
import android.view.Display;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.LinearLayout;
import android.widget.ScrollView;
import android.widget.TextView;
import com.mang.xuedianyun.android.R;
import butterknife.ButterKnife;
/**
* Created by abao on 2017/5/9.
* @deprecated
*/
public class AnswText {
/*单选多选类型*/
public final static int ANSWER_TYPE_SINGLE_OR_MORE = 1;
/*对错类型*/
public final static int ANSWER_TYPE_RIGHT_OR_WRONG = 2;
/*填空*/
public final static int ANSWER_TYPE_FILLING = 3;
/*单前的type*/
private static int ANSWER_CURRENT_TYPE = 1;
/*倒计时时间 s*/
public static int ANSWER_TIMEOUT = 30;
private StringBuffer sb = new StringBuffer();
private Context mContext;
private String character_close="关闭";
private String character_cancle="放弃";
private OnAnswerLayoutChangeListener onAnswerLayoutChangeListener;
public interface OnAnswerLayoutChangeListener{
/**
* 改变显示布局的大小
* @param
*/
void setAnswerSheetFramLayout(int num);
void setAnswerSheetNormal(int num);
}
public void setOnAnswerLayoutChangeListener(OnAnswerLayoutChangeListener onAnswerLayoutChangeListener){
this.onAnswerLayoutChangeListener=onAnswerLayoutChangeListener;
}
private Context context;
private Dialog dialog;
private TextView txt_title;
private TextView txt_cancel;
private LinearLayout lLayout_content;
private ScrollView sLayout_content;
private boolean showTitle = false;
// private List<ActionSheetDialog.SheetItem> sheetItemList;
private Display display;
public AnswText(Context context) {
this.context = context;
this.mContext=context;
WindowManager windowManager = (WindowManager) context
.getSystemService(Context.WINDOW_SERVICE);
display = windowManager.getDefaultDisplay();
}
public AnswText builder() {
View view = LayoutInflater.from(context).inflate(
R.layout.view_text, null);
ButterKnife.bind(this,view);
view.setMinimumWidth(display.getWidth());
dialog = new Dialog(context, R.style.ActionSheetDialogStyle);
dialog.setContentView(view);
Window dialogWindow = dialog.getWindow();
dialogWindow.setGravity(Gravity.LEFT | Gravity.BOTTOM);
// dialogWindow.setGravity( Gravity.BOTTOM);
WindowManager.LayoutParams lp = dialogWindow.getAttributes();
lp.x = 0;
lp.y = 0;
dialogWindow.setAttributes(lp);
return this;
}
public void show() {
dialog.show();
}
}
... ...
package com.mang.xdy.demo.widget.dialog;
package com.mang.xuedianyun.android.widget.dialog;
import android.app.Dialog;
import android.content.Context;
... ... @@ -12,15 +12,14 @@ import android.view.ViewGroup;
import android.view.Window;
import android.view.WindowManager;
import android.widget.CheckBox;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RadioButton;
import android.widget.RelativeLayout;
import android.widget.ScrollView;
import android.widget.TextView;
import com.mang.xdy.demo.R;
import com.mang.xdy.demo.utils.ToastUtil;
import com.mang.xuedianyun.android.R;
import com.mang.xuedianyun.android.utils.ToastUtil;
import com.mang.xdy.utils.XdyLogUtil;
import com.mang.xdy.utils.XdyStringUtils;
... ...
package com.mang.xdy.demo.widget.dialog;
package com.mang.xuedianyun.android.widget.dialog;
import android.content.Context;
import android.view.Gravity;
... ... @@ -7,8 +7,8 @@ import android.widget.Button;
import android.widget.EditText;
import com.mang.xdy.demo.R;
import com.mang.xdy.demo.dialog.BaseDialog;
import com.mang.xuedianyun.android.R;
import com.mang.xuedianyun.android.dialog.BaseDialog;
import com.mang.xdy.utils.UIUtils;
import org.greenrobot.eventbus.EventBus;
... ...
package com.mang.xdy.demo.widget.emoji;
package com.mang.xuedianyun.android.widget.emoji;
import android.view.KeyEvent;
import android.widget.EditText;
... ...
... ... @@ -13,13 +13,13 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.mang.xdy.demo.widget.emoji;
package com.mang.xuedianyun.android.widget.emoji;
import android.widget.AbsListView;
import android.widget.TextView;
import com.mang.xdy.demo.R;
import com.mang.xuedianyun.android.R;
import org.kymjs.kjframe.widget.AdapterHolder;
import org.kymjs.kjframe.widget.KJAdapter;
... ...
... ... @@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.mang.xdy.demo.widget.emoji;
package com.mang.xuedianyun.android.widget.emoji;
import android.app.Activity;
import android.os.Bundle;
... ... @@ -31,8 +31,8 @@ import android.widget.RadioButton;
import android.widget.RadioGroup;
import com.mang.xdy.demo.R;
import com.mang.xdy.demo.widget.chat.OnOperationListener;
import com.mang.xuedianyun.android.R;
import com.mang.xuedianyun.android.widget.chat.OnOperationListener;
import org.kymjs.kjframe.ui.SupportFragment;
... ...
... ... @@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.mang.xdy.demo.widget.emoji;
package com.mang.xuedianyun.android.widget.emoji;
/**
* emoji表情的javabean
... ...
package com.mang.xdy.demo.widget.emoji;
package com.mang.xuedianyun.android.widget.emoji;
import com.mang.xdy.demo.R;
import com.mang.xuedianyun.android.R;
import java.util.ArrayList;
import java.util.HashMap;
... ...
package com.mang.xdy.demo.widget.emoji;
package com.mang.xuedianyun.android.widget.emoji;
import android.content.Context;
import android.content.res.TypedArray;
... ...
package com.mang.xdy.demo.widget.emoji;
package com.mang.xuedianyun.android.widget.emoji;
import android.content.Context;
import android.content.res.TypedArray;
... ...
package com.mang.xdy.demo.widget.view;
package com.mang.xuedianyun.android.widget.view;
import android.content.Context;
import android.os.Build;
... ... @@ -7,7 +7,7 @@ import android.view.View;
import android.view.ViewGroup;
import android.widget.RelativeLayout;
import com.mang.xdy.demo.utils.DisplayUtil;
import com.mang.xuedianyun.android.utils.DisplayUtil;
public class AutoAdaptHeaderViewGroup extends RelativeLayout {
... ...
package com.mang.xdy.demo.widget.view;
package com.mang.xuedianyun.android.widget.view;
import android.content.Context;
import android.support.v4.view.ViewPager;
... ...
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/home_btn_green_press" android:state_pressed="true"></item>
<item android:drawable="@color/home_btn_green_press" android:state_checked="true"></item>
<item android:drawable="@color/home_btn_green"></item>
</selector>
\ No newline at end of file
... ...
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/answer_select" android:state_checked="true" />
<item android:drawable="@drawable/answer_unselect" />
</selector>
\ No newline at end of file
... ...
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/spreadback" android:state_checked="true" />
<item android:drawable="@drawable/foldback" />
</selector>
\ No newline at end of file
... ...
<?xml version="1.0" encoding="UTF-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval"
android:useLevel="false" >
<solid android:color="@color/colorSkyBlue" />
<!--<padding-->
<!--android:left="2dp"-->
<!--android:top="1dp"-->
<!--android:right="2dp"-->
<!--android:bottom="1dp" />-->
<!--<solid-->
<!--android:color="@color/actionsheet_red" />-->
<!--<stroke-->
<!--android:width="1dp"-->
<!--android:color="@android:color/white" />-->
<size android:width="18dp"
android:height="18dp" />
</shape>
\ No newline at end of file
... ...
<?xml version="1.0" encoding="UTF-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval"
android:useLevel="false" >
<solid android:color="@color/actionsheet_red" />
<!--<padding-->
<!--android:left="2dp"-->
<!--android:top="1dp"-->
<!--android:right="2dp"-->
<!--android:bottom="1dp" />-->
<!--<solid-->
<!--android:color="@color/actionsheet_red" />-->
<!--<stroke-->
<!--android:width="1dp"-->
<!--android:color="@android:color/white" />-->
<size android:width="18dp"
android:height="18dp" />
</shape>
\ No newline at end of file
... ...
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<!-- 圆角 -->
<corners android:radius="16dp" />
<!-- 填充颜色 -->
<solid android:color="@color/colorSkyBlue" />
<!--&lt;!&ndash;内边距&ndash;&gt;-->
<padding
android:bottom="5dp"
android:left="5dp"
android:right="5dp"
android:top="5dp" />
</shape>
\ No newline at end of file
... ...
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<!-- 圆角 -->
<corners android:radius="16dp" />
<!-- 填充颜色 -->
<solid android:color="@color/colorGrey" />
<!--内边距-->
<padding
android:bottom="5dp"
android:left="5dp"
android:right="5dp"
android:top="5dp" />
</shape>
\ No newline at end of file
... ...
... ... @@ -5,7 +5,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.mang.xdy.demo.MainActivity">
tools:context="com.mang.xuedianyun.android.MainActivity">
<RelativeLayout
android:id="@+id/rl_home_close"
android:layout_width="@dimen/ui_DIMEN_98.0PX"
... ...
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:custom="http://schemas.android.com/apk/res-auto"
android:id="@+id/activity_video_play"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="#e3e4e6"
tools:context="com.mang.xuedianyun.android.activity.VideoPlayActivity">
<RelativeLayout
android:id="@+id/avg_videoPlay_back"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:paddingLeft="@dimen/ui_DIMEN_20.0PX"
android:paddingRight="@dimen/ui_DIMEN_20.0PX">
<ImageView
android:id="@+id/img_videoPlay_back"
android:layout_width="wrap_content"
android:layout_height="@dimen/ui_titlebar_height"
android:paddingRight="10dp"
android:paddingLeft="15dp"
android:src="@mipmap/back"/>
<TextView
android:layout_toRightOf="@+id/img_videoPlay_back"
android:layout_width="wrap_content"
style="@style/ui_wrapTvBaseStyle"
android:layout_height="@dimen/ui_titlebar_height"
android:text="@string/home_title_back"
android:gravity="center"
android:textColor="@color/white"
android:visibility="gone"
/>
<TextView
android:id="@+id/tv_videoPlay_className"
style="@style/ui_wrapTvBaseStyle"
android:layout_height="@dimen/ui_titlebar_height"
android:gravity="center"
android:layout_centerHorizontal="true"
android:textColor="@color/white"
android:layout_toRightOf="@+id/img_videoPlay_back"
tools:text="dfdfdfdfdfdf"
android:textSize="@dimen/ui_DIMEN_34.0PX"/>
</RelativeLayout>
<!--白板+right-->
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:layout_below="@+id/avg_videoPlay_back"
android:layout_above="@+id/fl_media"
>
<LinearLayout
android:id="@+id/ll_videoPlay_right"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical"
android:layout_alignParentRight="true"
>
<RelativeLayout
android:id="@+id/rel_videoPlay_play"
android:layout_width="255dp"
android:layout_alignParentRight="true"
android:layout_weight="1"
android:layout_height="wrap_content">
<com.pili.pldroid.player.widget.PLVideoTextureView
android:id="@+id/img_playVideo_replay"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"/>
<SurfaceView
android:id="@+id/surfaceview_playVideo"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
<ImageView
android:id="@+id/img_playVideo_novideo"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@mipmap/novideo"
/>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
</FrameLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_alignParentRight="true"
android:id="@+id/linearLayout">
</LinearLayout>
</RelativeLayout>
<!--推流-->
<RelativeLayout
android:id="@+id/rel_videoPlay_publish"
android:layout_width="255dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_below="@+id/rel_videoPlay_play"
android:layout_alignParentRight="true"
android:layout_alignLeft="@+id/rel_videoPlay_play"
android:layout_marginTop="8dp"
>
<SurfaceView
android:id="@+id/sur_plaVideo_publish"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone"
tools:visibility="visible"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
/>
<FrameLayout
android:id="@+id/fra_videoPlay_student_cover"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerInParent="true"
>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@mipmap/student"
tools:visibility="visible"
android:layout_gravity="center"
android:scaleType="fitCenter"
/>
</FrameLayout>
<ImageView
android:id="@+id/img_playVideo_publishAudio"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@mipmap/audio_mode"
android:visibility="gone"
tools:visibility="visible"
android:scaleType="fitCenter"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
/>
<FrameLayout
android:id="@+id/fra_videoPlay_start"
android:layout_width="50dp"
android:layout_height="50dp"
tools:visibility="visible"
android:layout_alignParentLeft="true"
android:layout_alignParentBottom="true"
>
<ImageView
android:id="@+id/img_videoPlay_start"
android:layout_width="20dp"
android:layout_height="12dp"
android:layout_marginTop="20dp"
android:layout_marginLeft="5dp"
android:background="@mipmap/camera_normal2x"
/>
</FrameLayout>
<!--音频-->
<FrameLayout
android:id="@+id/fra_videoPlay_start_audio"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_toRightOf="@+id/fra_videoPlay_start"
tools:visibility="visible"
android:layout_alignParentBottom="true"
>
<ImageView
android:id="@+id/img_videoPlay_start_audio"
android:layout_width="12dp"
android:layout_height="20dp"
android:layout_marginTop="15dp"
android:background="@mipmap/mic_normal2x"
/>
</FrameLayout>
<FrameLayout
android:id="@+id/fra_videoPlay_stopPublish"
android:layout_width="70dp"
android:layout_height="50dp"
android:visibility="gone"
tools:visibility="visible"
android:layout_alignParentLeft="true"
android:layout_alignParentBottom="true"
android:layout_alignBottom="@+id/sur_plaVideo_publish"
>
<ImageView
android:id="@+id/img_videoPlay_stopPublish"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginLeft="15dp"
android:enabled="false"
android:background="@mipmap/hangup_normal2x"
/>
</FrameLayout>
</RelativeLayout>
<LinearLayout
android:id="@+id/ll_videoPlay_tablet_chat"
android:layout_width="255dp"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_marginTop="8dp"
/>
</LinearLayout>
<!--Tablet文档-->
<LinearLayout
android:id="@+id/ll_videoPlay_tablet_doc"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="3"
android:orientation="vertical"
android:layout_marginRight="5dp"
android:layout_marginLeft="5dp"
android:layout_toLeftOf="@+id/ll_videoPlay_right"
/>
</RelativeLayout>
<com.flyco.tablayout.SlidingTabLayout
android:id="@+id/stl_videoPlay_tab"
android:layout_width="match_parent"
android:layout_height="@dimen/ui_titlebar_height"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:background="#fafafa"
custom:tl_indicator_color="@color/home_tab_selected"
custom:tl_indicator_corner_radius="1.5dp"
custom:tl_indicator_height="@dimen/ui_DIMEN_5.0PX"
custom:tl_tab_space_equal="true"
custom:tl_textSelectColor="@color/home_tab_selected"
custom:tl_textUnselectColor="@color/home_tab_unselected"
custom:tl_textsize="@dimen/ui_DIMEN_28.0PX"/>
<com.mang.xuedianyun.android.widget.view.NoScrollViewPager
android:id="@+id/viewpager"
android:layout_below="@+id/stl_videoPlay_tab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/stl_videoPlay_tab"
android:background="@android:color/white" >
</com.mang.xuedianyun.android.widget.view.NoScrollViewPager>
<FrameLayout
android:id="@+id/fl_media"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
>
<include
layout="@layout/home_media_controller"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</FrameLayout>
</RelativeLayout>
... ...
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_video_play"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.mang.xuedianyun.android.activity.VideoPlayActivity">
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"
>
<SurfaceView
android:id="@+id/surfaceview_playVideo"
android:layout_width="match_parent"
android:layout_height="200dp"
android:visibility="gone"/>
<ImageView
android:id="@+id/img_playVideo_novideo"
android:layout_width="match_parent"
android:layout_height="200dp"
android:background="@mipmap/novideo"
/>
</RelativeLayout>
<SurfaceView
android:id="@+id/surfaceview_pubisherVideo"
android:layout_width="match_parent"
android:layout_height="300dp" />
<android.support.design.widget.TabLayout
android:id="@+id/sliding_tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="0px"
android:layout_weight="1"
android:background="@android:color/white" />
<TextView
android:id="@+id/tv_videoPlay_url"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/btn_videoPlay_chat"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="发送hello"
android:visibility="gone"
/>
<Button
android:id="@+id/btn_videoPlay_pubsherVideo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="获取推流地址推送视频"
android:enabled="false"
/>
<Button
android:id="@+id/btn_videoPlay_publisherAudio"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="获取推流地址推送音频"
android:enabled="false"
/>
<Button
android:id="@+id/btn_videoPlay_stop"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="停止推流"
/>
</LinearLayout>
</LinearLayout>
... ...
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:layout_width="@dimen/ui_DIMEN_500.0PX"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:background="@drawable/radius_solid_white_stroke_999"
android:gravity="center_horizontal"
android:orientation="vertical"
android:paddingBottom="@dimen/ui_DIMEN_20.0PX"
xmlns:android="http://schemas.android.com/apk/res/android">
<EditText
android:id="@+id/dialog_edt_username"
style="@style/home_login_edit_style"
android:hint="用户名"/>
<EditText
android:id="@+id/dialog_edt_userpwd"
style="@style/home_login_edit_style"
android:hint="密码"/>
<Button
android:id="@+id/dialog_btn_enter"
android:layout_width="100dp"
android:layout_height="wrap_content"
style="@style/home_site_btn_style"
android:text="登录"
/>
</LinearLayout>
\ No newline at end of file
... ...
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ll_chat_fragment_parent"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ebebeb"
android:orientation="vertical">
<com.mang.xuedianyun.android.widget.chat.KJChatKeyboard
android:id="@+id/chat_msg_input_box"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true" />
<ListView
android:id="@+id/chat_listview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/chat_msg_input_box"
android:cacheColorHint="#00000000"
android:divider="@null"
android:dividerHeight="8.33dp"
android:scrollbarStyle="outsideOverlay"
android:transcriptMode="normal" />
<View
android:id="@+id/view_line"
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_below="@id/chat_listview"
android:background="#7fd8d8d8" />
<!-- -->
</RelativeLayout>
\ No newline at end of file
... ...
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<com.mang.xuedianyun.android.widget.CanvasView
android:id="@+id/canvas_doc_show"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</RelativeLayout>
\ No newline at end of file
... ...