Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
yuan_ht
BlackHaoUtil
提交
a3d8159b
B
BlackHaoUtil
项目概览
yuan_ht
/
BlackHaoUtil
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
B
BlackHaoUtil
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
a3d8159b
编写于
8月 03, 2018
作者:
Black_Hao
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add BaseActivity BaseFragment Logutil
Add BaseActivity BaseFragment Logutil
上级
6561ff9d
变更
9
隐藏空白更改
内联
并排
Showing
9 changed file
with
715 addition
and
1 deletion
+715
-1
app/src/main/AndroidManifest.xml
app/src/main/AndroidManifest.xml
+2
-1
app/src/main/java/com/balckhao/blackhaoutil/base/BaseActivity.java
...ain/java/com/balckhao/blackhaoutil/base/BaseActivity.java
+193
-0
app/src/main/java/com/balckhao/blackhaoutil/base/BaseFragment.java
...ain/java/com/balckhao/blackhaoutil/base/BaseFragment.java
+139
-0
app/src/main/java/com/balckhao/blackhaoutil/base/TestActivity.java
...ain/java/com/balckhao/blackhaoutil/base/TestActivity.java
+67
-0
app/src/main/java/com/balckhao/blackhaoutil/base/TestFragment.java
...ain/java/com/balckhao/blackhaoutil/base/TestFragment.java
+47
-0
app/src/main/java/com/balckhao/blackhaoutil/logUtil/LogUtil.java
.../main/java/com/balckhao/blackhaoutil/logUtil/LogUtil.java
+220
-0
app/src/main/java/com/balckhao/blackhaoutil/usbUtil/UsbTestActivity.java
...va/com/balckhao/blackhaoutil/usbUtil/UsbTestActivity.java
+1
-0
app/src/main/res/layout/activity_base_test.xml
app/src/main/res/layout/activity_base_test.xml
+33
-0
app/src/main/res/layout/fragment_one.xml
app/src/main/res/layout/fragment_one.xml
+13
-0
未找到文件。
app/src/main/AndroidManifest.xml
浏览文件 @
a3d8159b
...
...
@@ -21,7 +21,7 @@
android:roundIcon=
"@mipmap/ic_launcher_round"
android:supportsRtl=
"true"
android:theme=
"@style/AppTheme"
>
<activity
android:name=
".
Main
Activity"
>
<activity
android:name=
".
base.Test
Activity"
>
<intent-filter>
<action
android:name=
"android.intent.action.MAIN"
/>
...
...
@@ -29,6 +29,7 @@
</intent-filter>
</activity>
<activity
android:name=
".usbUtil.UsbTestActivity"
/>
<!--<activity android:name=".base.TestActivity" />-->
</application>
</manifest>
\ No newline at end of file
app/src/main/java/com/balckhao/blackhaoutil/base/BaseActivity.java
0 → 100644
浏览文件 @
a3d8159b
package
com.balckhao.blackhaoutil.base
;
import
android.content.Intent
;
import
android.os.Bundle
;
import
android.os.Handler
;
import
android.os.Message
;
import
android.support.v4.app.Fragment
;
import
android.support.v4.app.FragmentTransaction
;
import
android.support.v7.app.AppCompatActivity
;
import
android.util.SparseArray
;
import
android.view.Window
;
import
android.view.WindowManager
;
import
android.widget.Toast
;
import
com.balckhao.blackhaoutil.logUtil.LogUtil
;
import
java.lang.ref.WeakReference
;
/**
* Author : 章浩
* Time : 2018/6/20 16:38
* Description : 教育一体机 BaseActivity
*/
public
abstract
class
BaseActivity
extends
AppCompatActivity
{
//Handler
public
WeakHandler
handler
;
//Toast 间隔时间
private
static
long
TOAST_INTERVALS
=
1000
;
//Toast上次显示时间(避免短时间内多次调用)
private
long
showToastTime
=
0
;
//用于保存对应 FrameLayout当前显示的 Fragment
private
SparseArray
<
Fragment
>
fragmentArray
;
//LogUtil
protected
LogUtil
log
;
@Override
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
//定义全屏参数
int
flag
=
WindowManager
.
LayoutParams
.
FLAG_FULLSCREEN
;
//获得当前窗体对象
Window
window
=
this
.
getWindow
();
//设置当前窗体为全屏显示
window
.
setFlags
(
flag
,
flag
);
//初始化Log
log
=
LogUtil
.
getInstance
();
//初始化fragmentArray
fragmentArray
=
new
SparseArray
<>();
//初始化UI
initUI
();
//view 初始化完成
getWindow
().
getDecorView
().
post
(
new
Runnable
()
{
@Override
public
void
run
()
{
//初始化数据
initData
();
//添加listener
initListener
();
}
});
}
/**
* 初始化UI
*/
protected
abstract
void
initUI
();
/**
* UI初始化完成,初始化数据
*/
protected
abstract
void
initData
();
/**
* UI初始化完成,初始化接口
*/
protected
abstract
void
initListener
();
/**
* 子类要处理 handler的消息,重写该方法
*/
protected
abstract
void
handleMessage
(
Message
msg
);
/**
* 初始化 Handler(不用 handler 时,不需要调用该方法)
*/
public
void
initHandler
()
{
handler
=
new
WeakHandler
(
this
);
}
/**
* 显示 Toast(可以在子线程中调用)
*/
public
void
showToast
(
final
String
str
)
{
runOnUiThread
(
new
Runnable
()
{
@Override
public
void
run
()
{
//避免多次调用
if
(
System
.
currentTimeMillis
()
-
showToastTime
>
TOAST_INTERVALS
)
{
Toast
.
makeText
(
BaseActivity
.
this
,
str
,
Toast
.
LENGTH_SHORT
).
show
();
//更新显示时间
showToastTime
=
System
.
currentTimeMillis
();
}
}
});
}
/**
* 显示 Toast(可以在子线程中调用)
*/
public
void
showToast
(
int
strId
)
{
showToast
(
getString
(
strId
));
}
/**
* 替换 fragment
*
* @param frameId frameLayout id
* @param showFragment 需要显示的 Fragment
*/
public
void
replaceFragment
(
int
frameId
,
Fragment
showFragment
)
{
Fragment
currentFragment
=
fragmentArray
.
get
(
frameId
);
FragmentTransaction
transaction
=
getSupportFragmentManager
().
beginTransaction
();
//用于fragment的显示与隐藏
if
(
currentFragment
!=
null
&&
currentFragment
!=
showFragment
)
{
if
(!
showFragment
.
isAdded
())
{
// 先判断是否被add过
transaction
.
hide
(
currentFragment
).
add
(
frameId
,
showFragment
).
commit
();
// 隐藏当前的fragment,add下一个到Activity中
}
else
{
transaction
.
hide
(
currentFragment
).
show
(
showFragment
).
commit
();
// 隐藏当前的fragment,显示下一个
}
fragmentArray
.
put
(
frameId
,
showFragment
);
}
else
if
(
currentFragment
==
null
)
{
if
(!
showFragment
.
isAdded
())
{
// 先判断是否被add过
transaction
.
add
(
frameId
,
showFragment
).
commit
();
// 隐藏当前的fragment,add下一个到Activity中
}
else
{
transaction
.
show
(
showFragment
).
commit
();
// 隐藏当前的fragment,显示下一个
}
fragmentArray
.
put
(
frameId
,
showFragment
);
}
}
/**
* activity 跳转
*
* @param target 需要跳转的 Activity
* @param bundle bundle
* @param isCloseSelf 是否关闭当前的 activity
*/
public
void
openActivity
(
Class
<?>
target
,
Bundle
bundle
,
boolean
isCloseSelf
)
{
Intent
intent
=
new
Intent
(
this
,
target
);
if
(
bundle
!=
null
)
{
intent
.
putExtras
(
bundle
);
}
startActivity
(
intent
);
if
(
isCloseSelf
)
{
finish
();
}
}
/**
* activity 跳转(不需要传值)
*
* @param target 需要跳转的Activity
*/
public
void
openActivity
(
Class
<?>
target
)
{
openActivity
(
target
,
null
,
false
);
}
/**
* 弱引用 handler
*/
public
static
class
WeakHandler
extends
Handler
{
WeakReference
weakReference
;
WeakHandler
(
BaseActivity
activity
)
{
this
.
weakReference
=
new
WeakReference
<>(
activity
);
}
@Override
public
void
handleMessage
(
Message
msg
)
{
super
.
handleMessage
(
msg
);
BaseActivity
activity
=
(
BaseActivity
)
weakReference
.
get
();
switch
(
msg
.
what
)
{
default
:
if
(
activity
!=
null
)
{
activity
.
handleMessage
(
msg
);
}
break
;
}
}
}
}
app/src/main/java/com/balckhao/blackhaoutil/base/BaseFragment.java
0 → 100644
浏览文件 @
a3d8159b
package
com.balckhao.blackhaoutil.base
;
import
android.os.Bundle
;
import
android.support.annotation.Nullable
;
import
android.support.v4.app.Fragment
;
import
android.support.v4.app.FragmentTransaction
;
import
android.util.SparseArray
;
import
android.view.LayoutInflater
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
com.balckhao.blackhaoutil.logUtil.LogUtil
;
/**
* Author : BlackHao
* Time : 2018/6/20 14:55
* Description : 教育一体机 BaseFragment
*/
public
abstract
class
BaseFragment
extends
Fragment
{
//对应的activity
protected
BaseActivity
baseActivity
;
//用于保存对应FrameLayout当前显示的Fragment
private
SparseArray
<
Fragment
>
fragmentArray
;
//LogUtil
protected
LogUtil
log
;
@Override
public
void
onCreate
(
@Nullable
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
baseActivity
=
(
BaseActivity
)
getActivity
();
fragmentArray
=
new
SparseArray
<>();
log
=
baseActivity
.
log
;
}
@Nullable
@Override
public
View
onCreateView
(
LayoutInflater
inflater
,
@Nullable
ViewGroup
container
,
@Nullable
Bundle
savedInstanceState
)
{
View
view
=
inflater
.
inflate
(
initLayoutRes
(),
container
,
false
);
initUI
(
view
);
return
view
;
}
@Override
public
void
onViewCreated
(
View
view
,
@Nullable
Bundle
savedInstanceState
)
{
super
.
onViewCreated
(
view
,
savedInstanceState
);
initData
();
initListener
();
}
/**
* 用于返回布局文件ID
*/
protected
abstract
int
initLayoutRes
();
/**
* UI初始化
*/
protected
abstract
void
initUI
(
View
view
);
/**
* UI初始化完成,初始化数据
*/
protected
abstract
void
initData
();
/**
* UI初始化完成,初始化接口
*/
protected
abstract
void
initListener
();
/**
* 显示 Toast(可以在子线程中调用)
*/
public
void
showToast
(
String
str
)
{
baseActivity
.
showToast
(
str
);
}
/**
* 显示Toast(可以在子线程中调用)
*/
public
void
showToast
(
int
strId
)
{
baseActivity
.
showToast
(
strId
);
}
/**
* 替换fragment
*
* @param frameId frameLayout id
* @param showFragment 需要显示的 Fragment
*/
public
void
replaceFragment
(
int
frameId
,
Fragment
showFragment
)
{
Fragment
currentFragment
=
fragmentArray
.
get
(
frameId
);
FragmentTransaction
transaction
=
getFragmentManager
().
beginTransaction
();
//用于fragment的显示与隐藏
if
(
currentFragment
!=
null
&&
currentFragment
!=
showFragment
)
{
// 先判断是否被add过
if
(!
showFragment
.
isAdded
())
{
// 隐藏当前的fragment,add下一个到Activity中
transaction
.
hide
(
currentFragment
).
add
(
frameId
,
showFragment
).
commit
();
}
else
{
// 隐藏当前的fragment,显示下一个
transaction
.
hide
(
currentFragment
).
show
(
showFragment
).
commit
();
}
fragmentArray
.
put
(
frameId
,
showFragment
);
}
else
if
(
currentFragment
==
null
)
{
// 先判断是否被add过
if
(!
showFragment
.
isAdded
())
{
// 隐藏当前的fragment,add下一个到Activity中
transaction
.
add
(
frameId
,
showFragment
).
commit
();
}
else
{
// 隐藏当前的fragment,显示下一个
transaction
.
show
(
showFragment
).
commit
();
}
fragmentArray
.
put
(
frameId
,
showFragment
);
}
}
/**
* activity 跳转
*
* @param target 需要跳转的Activity
* @param bundle bundle
* @param isCloseSelf 是否关闭当前的activity
*/
public
void
openActivity
(
Class
<?>
target
,
Bundle
bundle
,
boolean
isCloseSelf
)
{
baseActivity
.
openActivity
(
target
,
bundle
,
isCloseSelf
);
}
/**
* activity 跳转(不需要传值)
*
* @param target 需要跳转的 Activity
*/
public
void
openActivity
(
Class
<?>
target
)
{
openActivity
(
target
,
null
,
false
);
}
}
app/src/main/java/com/balckhao/blackhaoutil/base/TestActivity.java
0 → 100644
浏览文件 @
a3d8159b
package
com.balckhao.blackhaoutil.base
;
import
android.os.Message
;
import
android.widget.TextView
;
import
com.balckhao.blackhaoutil.R
;
import
java.text.SimpleDateFormat
;
import
java.util.Date
;
import
java.util.Locale
;
import
butterknife.Bind
;
import
butterknife.ButterKnife
;
/**
* Author : BlackHao
* Time : 2018/8/1 10:35
* Description : BaseActivity LogUtil Test
*/
public
class
TestActivity
extends
BaseActivity
{
@Bind
(
R
.
id
.
tv_show_time
)
TextView
tvShowTime
;
private
String
testJson1
=
"{\"UserID\":01, \"Name\":\"Test\", \"Email\":\"test@gmail.com\"};"
;
@Override
protected
void
initUI
()
{
setContentView
(
R
.
layout
.
activity_base_test
);
ButterKnife
.
bind
(
this
);
replaceFragment
(
R
.
id
.
frame_1
,
new
TestFragment
());
replaceFragment
(
R
.
id
.
frame_2
,
new
TestFragment
());
}
@Override
protected
void
initData
()
{
//初始化Handler
initHandler
();
handler
.
sendEmptyMessageDelayed
(
0
,
1000
);
log
.
json
(
testJson1
);
StringBuilder
sb
=
new
StringBuilder
();
for
(
int
i
=
0
;
i
<
2048
;
i
++)
{
sb
.
append
(
i
).
append
(
" "
);
if
(
i
+
1
%
100
==
0
)
{
sb
.
append
(
"\n"
);
}
}
log
.
e
(
sb
.
toString
());
}
@Override
protected
void
initListener
()
{
}
@Override
protected
void
handleMessage
(
Message
msg
)
{
switch
(
msg
.
what
)
{
case
0
:
SimpleDateFormat
df
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
,
Locale
.
CHINA
);
String
time
=
df
.
format
(
new
Date
());
tvShowTime
.
setText
(
time
);
handler
.
sendEmptyMessageDelayed
(
0
,
1000
);
break
;
}
}
}
app/src/main/java/com/balckhao/blackhaoutil/base/TestFragment.java
0 → 100644
浏览文件 @
a3d8159b
package
com.balckhao.blackhaoutil.base
;
import
android.view.View
;
import
android.widget.ImageView
;
import
com.balckhao.blackhaoutil.R
;
import
butterknife.Bind
;
import
butterknife.ButterKnife
;
/**
* Author : BlackHao
* Time : 2018/8/1 10:42
* Description :
*/
public
class
TestFragment
extends
BaseFragment
{
@Bind
(
R
.
id
.
iv_1
)
ImageView
iv1
;
@Override
protected
int
initLayoutRes
()
{
return
R
.
layout
.
fragment_one
;
}
@Override
protected
void
initUI
(
View
view
)
{
ButterKnife
.
bind
(
this
,
view
);
iv1
.
setImageResource
(
R
.
mipmap
.
ic_launcher
);
}
@Override
protected
void
initData
()
{
}
@Override
protected
void
initListener
()
{
}
@Override
public
void
onDestroyView
()
{
super
.
onDestroyView
();
ButterKnife
.
unbind
(
this
);
}
}
app/src/main/java/com/balckhao/blackhaoutil/logUtil/LogUtil.java
0 → 100644
浏览文件 @
a3d8159b
package
com.balckhao.blackhaoutil.logUtil
;
import
android.util.Log
;
/**
* Author : BlackHao
* Time : 2017/8/1 14:05
* Description : Log 工具类 ,支持跳转对应的代码位置
*/
public
class
LogUtil
{
//单例
private
static
LogUtil
logUtil
;
//打印调试开关
private
static
boolean
IS_DEBUG
=
true
;
//Log 单词打印的最大长度
private
static
final
int
MAX_LENGTH
=
3
*
1024
;
//单例模式初始化
public
static
LogUtil
getInstance
()
{
if
(
logUtil
==
null
)
{
logUtil
=
new
LogUtil
();
}
return
logUtil
;
}
/**
* 获取 TAG 信息:文件名以及行数
*
* @return TAG 信息
*/
private
synchronized
String
getTAG
()
{
StringBuilder
tag
=
new
StringBuilder
();
StackTraceElement
[]
sts
=
Thread
.
currentThread
().
getStackTrace
();
if
(
sts
==
null
)
{
return
""
;
}
for
(
StackTraceElement
st
:
sts
)
{
//筛选获取需要打印的TAG
if
(!
st
.
isNativeMethod
()
&&
!
st
.
getClassName
().
equals
(
Thread
.
class
.
getName
())
&&
!
st
.
getClassName
().
equals
(
this
.
getClass
().
getName
()))
{
//获取文件名以及打印的行数
tag
.
append
(
"("
).
append
(
st
.
getFileName
()).
append
(
":"
).
append
(
st
.
getLineNumber
()).
append
(
")"
);
return
tag
.
toString
();
}
}
return
""
;
}
/**
* Log.e 打印
*
* @param text 需要打印的内容
*/
public
synchronized
void
e
(
String
text
)
{
if
(
IS_DEBUG
)
{
for
(
String
str
:
splitStr
(
text
))
{
Log
.
e
(
getTAG
(),
str
);
}
}
}
/**
* Log.d 打印
*
* @param text 需要打印的内容
*/
public
synchronized
void
d
(
String
text
)
{
if
(
IS_DEBUG
)
{
for
(
String
str
:
splitStr
(
text
))
{
Log
.
d
(
getTAG
(),
str
);
}
}
}
/**
* Log.w 打印
*
* @param text 需要打印的内容
*/
public
synchronized
void
w
(
String
text
)
{
if
(
IS_DEBUG
)
{
for
(
String
str
:
splitStr
(
text
))
{
Log
.
w
(
getTAG
(),
str
);
}
}
}
/**
* Log.i 打印
*
* @param text 需要打印的内容
*/
public
synchronized
void
i
(
String
text
)
{
if
(
IS_DEBUG
)
{
for
(
String
str
:
splitStr
(
text
))
{
Log
.
i
(
getTAG
(),
str
);
}
}
}
/**
* Log.e 打印格式化后的JSON数据
*
* @param json 需要打印的内容
*/
public
synchronized
void
json
(
String
json
)
{
if
(
IS_DEBUG
)
{
String
tag
=
getTAG
();
try
{
//转化后的数据
String
logStr
=
formatJson
(
json
);
for
(
String
str
:
splitStr
(
logStr
))
{
Log
.
e
(
getTAG
(),
str
);
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
Log
.
e
(
tag
,
e
.
toString
());
}
}
}
/**
* 数据分割成不超过MAX_LENGTH的数据
*
* @param str 需要分割的数据
* @return 分割后的数组
*/
private
String
[]
splitStr
(
String
str
)
{
//字符串长度
int
length
=
str
.
length
();
//返回的数组
String
[]
strs
=
new
String
[
length
/
MAX_LENGTH
+
1
];
//
int
start
=
0
;
for
(
int
i
=
0
;
i
<
strs
.
length
;
i
++)
{
//判断是否达到最大长度
if
(
start
+
MAX_LENGTH
<
length
)
{
strs
[
i
]
=
str
.
substring
(
start
,
start
+
MAX_LENGTH
);
start
+=
MAX_LENGTH
;
}
else
{
strs
[
i
]
=
str
.
substring
(
start
,
length
);
start
=
length
;
}
}
return
strs
;
}
/**
* 格式化
*
* @param jsonStr json数据
* @return 格式化后的json数据
* @author lizhgb
* @link https://my.oschina.net/jasonli0102/blog/517052
*/
private
String
formatJson
(
String
jsonStr
)
{
if
(
null
==
jsonStr
||
""
.
equals
(
jsonStr
))
return
""
;
StringBuilder
sb
=
new
StringBuilder
();
char
last
=
'\0'
;
char
current
=
'\0'
;
int
indent
=
0
;
boolean
isInQuotationMarks
=
false
;
for
(
int
i
=
0
;
i
<
jsonStr
.
length
();
i
++)
{
last
=
current
;
current
=
jsonStr
.
charAt
(
i
);
switch
(
current
)
{
case
'"'
:
if
(
last
!=
'\\'
)
{
isInQuotationMarks
=
!
isInQuotationMarks
;
}
sb
.
append
(
current
);
break
;
case
'{'
:
case
'['
:
sb
.
append
(
current
);
if
(!
isInQuotationMarks
)
{
sb
.
append
(
'\n'
);
indent
++;
addIndentBlank
(
sb
,
indent
);
}
break
;
case
'}'
:
case
']'
:
if
(!
isInQuotationMarks
)
{
sb
.
append
(
'\n'
);
indent
--;
addIndentBlank
(
sb
,
indent
);
}
sb
.
append
(
current
);
break
;
case
','
:
sb
.
append
(
current
);
if
(
last
!=
'\\'
&&
!
isInQuotationMarks
)
{
sb
.
append
(
'\n'
);
addIndentBlank
(
sb
,
indent
);
}
break
;
default
:
sb
.
append
(
current
);
}
}
return
sb
.
toString
();
}
/**
* 在 StringBuilder指定位置添加 space
*
* @param sb 字符集
* @param indent 添加位置
* @author lizhgb
* @link https://my.oschina.net/jasonli0102/blog/517052
*/
private
void
addIndentBlank
(
StringBuilder
sb
,
int
indent
)
{
for
(
int
i
=
0
;
i
<
indent
;
i
++)
{
sb
.
append
(
'\t'
);
}
}
}
app/src/main/java/com/balckhao/blackhaoutil/usbUtil/UsbTestActivity.java
浏览文件 @
a3d8159b
...
...
@@ -17,6 +17,7 @@ import com.github.mjdev.libaums.UsbMassStorageDevice;
import
com.github.mjdev.libaums.fs.UsbFile
;
import
java.io.File
;
import
java.io.IOException
;
import
java.util.ArrayList
;
import
java.util.Collections
;
...
...
app/src/main/res/layout/activity_base_test.xml
0 → 100644
浏览文件 @
a3d8159b
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:orientation=
"vertical"
>
<TextView
android:id=
"@+id/tv_show_time"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:gravity=
"center"
android:textColor=
"@color/colorAccent"
/>
<FrameLayout
android:id=
"@+id/frame_1"
android:layout_width=
"match_parent"
android:layout_height=
"50dp"
android:layout_marginTop=
"10dp"
/>
<!--分割线-->
<View
android:layout_width=
"match_parent"
android:layout_height=
"1dp"
android:background=
"#26afcc"
/>
<FrameLayout
android:id=
"@+id/frame_2"
android:layout_width=
"match_parent"
android:layout_height=
"50dp"
android:layout_marginTop=
"10dp"
/>
</LinearLayout>
\ No newline at end of file
app/src/main/res/layout/fragment_one.xml
0 → 100644
浏览文件 @
a3d8159b
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
>
<ImageView
android:id=
"@+id/iv_1"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_centerInParent=
"true"
android:contentDescription=
"@null"
/>
</RelativeLayout>
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录