优化百分比拉动seekbar控件
This commit is contained in:
parent
8be7a931eb
commit
3765154f60
@ -76,6 +76,6 @@ dependencies {
|
|||||||
implementation 'androidx.fragment:fragment:1.1.0'
|
implementation 'androidx.fragment:fragment:1.1.0'
|
||||||
implementation 'com.google.android.material:material:1.4.0'
|
implementation 'com.google.android.material:material:1.4.0'
|
||||||
|
|
||||||
implementation 'cc.winboll.studio:libappbase:2.1.3'
|
implementation 'cc.winboll.studio:libappbase:2.1.5'
|
||||||
implementation 'cc.winboll.studio:libapputils:9.4.2'
|
implementation 'cc.winboll.studio:libapputils:9.4.4'
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
#Created by .winboll/winboll_app_build.gradle
|
#Created by .winboll/winboll_app_build.gradle
|
||||||
#Sat Mar 08 04:21:32 HKT 2025
|
#Sun Mar 09 03:25:41 GMT 2025
|
||||||
stageCount=7
|
stageCount=7
|
||||||
libraryProject=libaes
|
libraryProject=libaes
|
||||||
baseVersion=7.6
|
baseVersion=7.6
|
||||||
publishVersion=7.6.6
|
publishVersion=7.6.6
|
||||||
buildCount=0
|
buildCount=66
|
||||||
baseBetaVersion=7.6.7
|
baseBetaVersion=7.6.7
|
||||||
|
@ -51,6 +51,6 @@ dependencies {
|
|||||||
implementation 'androidx.fragment:fragment:1.1.0'
|
implementation 'androidx.fragment:fragment:1.1.0'
|
||||||
implementation 'com.google.android.material:material:1.4.0'
|
implementation 'com.google.android.material:material:1.4.0'
|
||||||
|
|
||||||
implementation 'cc.winboll.studio:libappbase:2.1.3'
|
implementation 'cc.winboll.studio:libappbase:2.1.5'
|
||||||
implementation 'cc.winboll.studio:libapputils:9.4.2'
|
implementation 'cc.winboll.studio:libapputils:9.4.4'
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
#Created by .winboll/winboll_app_build.gradle
|
#Created by .winboll/winboll_app_build.gradle
|
||||||
#Sat Mar 08 04:21:16 HKT 2025
|
#Sun Mar 09 03:25:41 GMT 2025
|
||||||
stageCount=7
|
stageCount=7
|
||||||
libraryProject=libaes
|
libraryProject=libaes
|
||||||
baseVersion=7.6
|
baseVersion=7.6
|
||||||
publishVersion=7.6.6
|
publishVersion=7.6.6
|
||||||
buildCount=0
|
buildCount=66
|
||||||
baseBetaVersion=7.6.7
|
baseBetaVersion=7.6.7
|
||||||
|
@ -19,10 +19,13 @@ import cc.winboll.studio.libaes.R;
|
|||||||
import cc.winboll.studio.libaes.views.AOHPCTCSeekBar;
|
import cc.winboll.studio.libaes.views.AOHPCTCSeekBar;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import cc.winboll.studio.libappbase.LogView;
|
||||||
|
|
||||||
public class TestViewPageFragment extends Fragment implements ViewPager.OnPageChangeListener, View.OnClickListener {
|
public class TestViewPageFragment extends Fragment implements ViewPager.OnPageChangeListener, View.OnClickListener {
|
||||||
|
|
||||||
public static final String TAG = "TestViewPageFragment";
|
public static final String TAG = "TestViewPageFragment";
|
||||||
|
|
||||||
|
LogView mLogView;
|
||||||
|
|
||||||
private ViewPager viewPager;
|
private ViewPager viewPager;
|
||||||
private List<View> views; //用来存放放进ViewPager里面的布局
|
private List<View> views; //用来存放放进ViewPager里面的布局
|
||||||
@ -36,6 +39,9 @@ public class TestViewPageFragment extends Fragment implements ViewPager.OnPageCh
|
|||||||
@Override
|
@Override
|
||||||
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||||
mView = inflater.inflate(R.layout.fragment_viewpage, container, false);
|
mView = inflater.inflate(R.layout.fragment_viewpage, container, false);
|
||||||
|
|
||||||
|
mLogView = mView.findViewById(R.id.logview);
|
||||||
|
mLogView.start();
|
||||||
|
|
||||||
//viewPager = findViewById(R.id.activitymainViewPager1);
|
//viewPager = findViewById(R.id.activitymainViewPager1);
|
||||||
initData();
|
initData();
|
||||||
@ -60,6 +66,7 @@ public class TestViewPageFragment extends Fragment implements ViewPager.OnPageCh
|
|||||||
initPoint();//初始化页面下方的点
|
initPoint();//初始化页面下方的点
|
||||||
viewPager.setOnPageChangeListener(this);
|
viewPager.setOnPageChangeListener(this);
|
||||||
initAOHPCTCSeekBar();
|
initAOHPCTCSeekBar();
|
||||||
|
initAOHPCTCSeekBar2();
|
||||||
}
|
}
|
||||||
|
|
||||||
//初始化所要显示的布局
|
//初始化所要显示的布局
|
||||||
@ -187,7 +194,9 @@ public class TestViewPageFragment extends Fragment implements ViewPager.OnPageCh
|
|||||||
void initAOHPCTCSeekBar() {
|
void initAOHPCTCSeekBar() {
|
||||||
AOHPCTCSeekBar seekbar = mView.findViewById(R.id.fragmentviewpageAOHPCTCSeekBar1);
|
AOHPCTCSeekBar seekbar = mView.findViewById(R.id.fragmentviewpageAOHPCTCSeekBar1);
|
||||||
seekbar.setThumb(getActivity().getDrawable(R.drawable.ic_launcher));
|
seekbar.setThumb(getActivity().getDrawable(R.drawable.ic_launcher));
|
||||||
seekbar.setThumbOffset(10);
|
//seekbar.setThumbOffset(200);
|
||||||
|
//seekbar.setThumbOffset(1);
|
||||||
|
seekbar.setBlurRightDP(50);
|
||||||
seekbar.setOnOHPCListener(new AOHPCTCSeekBar.OnOHPCListener() {
|
seekbar.setOnOHPCListener(new AOHPCTCSeekBar.OnOHPCListener() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -196,4 +205,19 @@ public class TestViewPageFragment extends Fragment implements ViewPager.OnPageCh
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void initAOHPCTCSeekBar2() {
|
||||||
|
AOHPCTCSeekBar seekbar = mView.findViewById(R.id.fragmentviewpageAOHPCTCSeekBar2);
|
||||||
|
seekbar.setThumb(getActivity().getDrawable(R.drawable.ic_call));
|
||||||
|
//seekbar.setThumbOffset(200);
|
||||||
|
//seekbar.setThumbOffset(1);
|
||||||
|
seekbar.setBlurRightDP(50);
|
||||||
|
seekbar.setOnOHPCListener(new AOHPCTCSeekBar.OnOHPCListener() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onOHPCommit() {
|
||||||
|
Toast.makeText(getActivity(), "onOHPCommit 2", Toast.LENGTH_SHORT).show();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,18 +6,28 @@ package cc.winboll.studio.libaes.views;
|
|||||||
* @Describe AOneHundredPercantClickToCommitSeekBar
|
* @Describe AOneHundredPercantClickToCommitSeekBar
|
||||||
*/
|
*/
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.graphics.drawable.Drawable;
|
||||||
import android.util.AttributeSet;
|
import android.util.AttributeSet;
|
||||||
import android.view.MotionEvent;
|
import android.view.MotionEvent;
|
||||||
import android.widget.SeekBar;
|
import android.widget.SeekBar;
|
||||||
|
import cc.winboll.studio.libappbase.LogUtils;
|
||||||
|
|
||||||
public class AOHPCTCSeekBar extends SeekBar {
|
public class AOHPCTCSeekBar extends SeekBar {
|
||||||
|
|
||||||
public static final String TAG = "AOHPCTCSeekBar";
|
public static final String TAG = "AOHPCTCSeekBar";
|
||||||
|
|
||||||
|
Context mContext;
|
||||||
|
|
||||||
|
int thumbWidth = 1;
|
||||||
|
int progressBarWidth = 1;
|
||||||
|
// 设置按钮模糊右边边缘像素
|
||||||
|
int blurRightDP = 1;
|
||||||
|
|
||||||
// 可开始拉动的起始位置(百分比值)
|
// 可开始拉动的起始位置(百分比值)
|
||||||
static final int ENABLE_POST_PERCENT_X = 20;
|
//static final int ENABLE_POST_PERCENT_X = 20;
|
||||||
|
//int seekablePosition;
|
||||||
// 最小拉动值,滑块拉动值要超过这个值,确定事件才会提交。
|
// 最小拉动值,滑块拉动值要超过这个值,确定事件才会提交。
|
||||||
static final int TO_MIN_VALUE = 15;
|
//static final int TO_MIN_VALUE = 15;
|
||||||
// 外部接口对象,确定事件提交会调用该对象的方法
|
// 外部接口对象,确定事件提交会调用该对象的方法
|
||||||
OnOHPCListener mOnOHPCListener;
|
OnOHPCListener mOnOHPCListener;
|
||||||
// 是否从起点拉动的标志
|
// 是否从起点拉动的标志
|
||||||
@ -25,6 +35,10 @@ public class AOHPCTCSeekBar extends SeekBar {
|
|||||||
// 拉动的滑动值
|
// 拉动的滑动值
|
||||||
int mnTo = 0;
|
int mnTo = 0;
|
||||||
|
|
||||||
|
public void setBlurRightDP(int blurRight) {
|
||||||
|
this.blurRightDP = blurRight;
|
||||||
|
}
|
||||||
|
|
||||||
public void setOnOHPCListener(OnOHPCListener listener) {
|
public void setOnOHPCListener(OnOHPCListener listener) {
|
||||||
mOnOHPCListener = listener;
|
mOnOHPCListener = listener;
|
||||||
}
|
}
|
||||||
@ -35,10 +49,12 @@ public class AOHPCTCSeekBar extends SeekBar {
|
|||||||
|
|
||||||
public AOHPCTCSeekBar(Context context) {
|
public AOHPCTCSeekBar(Context context) {
|
||||||
super(context);
|
super(context);
|
||||||
|
initView(context);
|
||||||
}
|
}
|
||||||
|
|
||||||
public AOHPCTCSeekBar(Context context, AttributeSet attrs) {
|
public AOHPCTCSeekBar(Context context, AttributeSet attrs) {
|
||||||
super(context, attrs);
|
super(context, attrs);
|
||||||
|
initView(context);
|
||||||
|
|
||||||
//LogUtils.d(TAG, "AOHPCTCSeekBar(...)");
|
//LogUtils.d(TAG, "AOHPCTCSeekBar(...)");
|
||||||
|
|
||||||
@ -61,12 +77,23 @@ public class AOHPCTCSeekBar extends SeekBar {
|
|||||||
|
|
||||||
public AOHPCTCSeekBar(Context context, AttributeSet attrs, int defStyleAttr) {
|
public AOHPCTCSeekBar(Context context, AttributeSet attrs, int defStyleAttr) {
|
||||||
super(context, attrs, defStyleAttr);
|
super(context, attrs, defStyleAttr);
|
||||||
|
initView(context);
|
||||||
|
}
|
||||||
|
|
||||||
|
void initView(Context context) {
|
||||||
|
LogUtils.d(TAG, "initView(...)");
|
||||||
|
mContext = context;
|
||||||
|
// Drawable thumbDrawable = getThumb();
|
||||||
|
// if (thumbDrawable!= null) {
|
||||||
|
// int iconWidth = thumbDrawable.getIntrinsicWidth();
|
||||||
|
// LogUtils.d(TAG, String.format("iconWidth %d", iconWidth));
|
||||||
|
// seekablePosition = iconWidth;
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onFinishInflate() {
|
protected void onFinishInflate() {
|
||||||
super.onFinishInflate();
|
super.onFinishInflate();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -74,33 +101,52 @@ public class AOHPCTCSeekBar extends SeekBar {
|
|||||||
if (event.getAction() == MotionEvent.ACTION_DOWN) {
|
if (event.getAction() == MotionEvent.ACTION_DOWN) {
|
||||||
//LogUtils.d(TAG, "ACTION_DOWN");
|
//LogUtils.d(TAG, "ACTION_DOWN");
|
||||||
// 有效的拖动起始位置(ENABLE_POST_PERCENT_X)%
|
// 有效的拖动起始位置(ENABLE_POST_PERCENT_X)%
|
||||||
int nEnablePostX = ((getRight() - getLeft()) * ENABLE_POST_PERCENT_X / 100) + getLeft();
|
//int nEnablePostX = ((getRight() - getLeft()) * ENABLE_POST_PERCENT_X / 100) + getLeft();
|
||||||
|
//int nEnablePostX = ((getRight() - getLeft()) * seekablePosition / 100) + getLeft();
|
||||||
if ((getLeft() < event.getX())
|
/*LogUtils.d(TAG, "event.getX() is " + Float.toString(event.getX()));
|
||||||
&& (event.getX() < nEnablePostX)) {
|
LogUtils.d(TAG, String.format("thumbWidth %d progressBarWidth %d", thumbWidth, progressBarWidth));
|
||||||
//LogUtils.d(TAG, "event.getX() is " + Float.toString(event.getX()));
|
LogUtils.d(TAG, String.format("mIsStartTo %s", mIsStartTo));
|
||||||
|
*/
|
||||||
|
if (thumbWidth + blurRightDP > event.getX() && event.getX() > 0) {
|
||||||
mIsStartTo = true;
|
mIsStartTo = true;
|
||||||
return super.dispatchTouchEvent(event);
|
return true;
|
||||||
}
|
//return super.dispatchTouchEvent(event);
|
||||||
if (!mIsStartTo) {
|
|
||||||
resetView();
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
// if (!mIsStartTo) {
|
||||||
|
// resetView();
|
||||||
|
// return false;
|
||||||
|
// }
|
||||||
} else if (event.getAction() == MotionEvent.ACTION_MOVE) {
|
} else if (event.getAction() == MotionEvent.ACTION_MOVE) {
|
||||||
//LogUtils.d(TAG, "ACTION_MOVE");
|
//LogUtils.d(TAG, "ACTION_MOVE");
|
||||||
|
/*LogUtils.d(TAG, "event.getX() is " + Float.toString(event.getX()));
|
||||||
|
LogUtils.d(TAG, String.format("thumbWidth %d progressBarWidth %d", thumbWidth, progressBarWidth));
|
||||||
|
LogUtils.d(TAG, String.format("mIsStartTo %s", mIsStartTo));
|
||||||
|
*/
|
||||||
if (mIsStartTo) {
|
if (mIsStartTo) {
|
||||||
mnTo++;
|
return super.dispatchTouchEvent(event);
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
} else if (event.getAction() == MotionEvent.ACTION_UP) {
|
} else if (event.getAction() == MotionEvent.ACTION_UP
|
||||||
|
|| event.getAction() == MotionEvent.ACTION_CANCEL) {
|
||||||
//LogUtils.d(TAG, Integer.toString(getProgress()));
|
//LogUtils.d(TAG, Integer.toString(getProgress()));
|
||||||
// 提交100%确定事件
|
// 提交100%确定事件
|
||||||
if ((getProgress() == 100) && (mnTo > TO_MIN_VALUE)) {
|
// if (getProgress() == progressBarWidth) {
|
||||||
//LogUtils.d(TAG, "Commit mnTo is " + Integer.toString(mnTo));
|
// //((getProgress() == 100) && (mnTo > TO_MIN_VALUE)) {
|
||||||
mOnOHPCListener.onOHPCommit();
|
// //LogUtils.d(TAG, "Commit mnTo is " + Integer.toString(mnTo));
|
||||||
//resetView();
|
// mOnOHPCListener.onOHPCommit();
|
||||||
//return true;
|
// resetView();
|
||||||
}
|
// //return true;
|
||||||
resetView();
|
// } else {
|
||||||
|
// resetView();
|
||||||
|
// mIsStartTo = false;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
if (getProgress() == progressBarWidth) {
|
||||||
|
mOnOHPCListener.onOHPCommit();
|
||||||
|
}
|
||||||
|
mIsStartTo = false;
|
||||||
|
resetView();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
//LogUtils.d(TAG, "dispatchTouchEvent End");
|
//LogUtils.d(TAG, "dispatchTouchEvent End");
|
||||||
@ -114,4 +160,31 @@ public class AOHPCTCSeekBar extends SeekBar {
|
|||||||
mnTo = 0;
|
mnTo = 0;
|
||||||
mIsStartTo = false;
|
mIsStartTo = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
|
||||||
|
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
|
||||||
|
int width = MeasureSpec.getSize(widthMeasureSpec);
|
||||||
|
int height = MeasureSpec.getSize(heightMeasureSpec);
|
||||||
|
LogUtils.d(TAG, String.format("width %d height %d", width, height));
|
||||||
|
|
||||||
|
// 使用width和height进行后续操作
|
||||||
|
|
||||||
|
// 获取SeekBar的图标
|
||||||
|
Drawable thumbDrawable = getThumb();
|
||||||
|
if (thumbDrawable != null) {
|
||||||
|
// 获取图标宽度
|
||||||
|
thumbWidth = thumbDrawable.getIntrinsicWidth();
|
||||||
|
// 获取进度条宽度
|
||||||
|
progressBarWidth = width;//getWidth();// - getPaddingLeft() - getPaddingRight();
|
||||||
|
// 计算百分比
|
||||||
|
//float percentage = (float) thumbWidth / progressBarWidth * 100;
|
||||||
|
LogUtils.d(TAG, String.format("thumbWidth %d progressBarWidth %d", thumbWidth, progressBarWidth));
|
||||||
|
//LogUtils.d(TAG, String.format("Thumb width / ProgressBar width percentage: %f", percentage));
|
||||||
|
|
||||||
|
//seekablePosition = (int)percentage;
|
||||||
|
setThumbOffset(0);
|
||||||
|
setMax(progressBarWidth);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
11
libaes/src/main/res/drawable/ic_call.xml
Normal file
11
libaes/src/main/res/drawable/ic_call.xml
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="24dp"
|
||||||
|
android:height="24dp"
|
||||||
|
android:viewportHeight="24"
|
||||||
|
android:viewportWidth="24">
|
||||||
|
<path
|
||||||
|
android:fillColor="#ff000000"
|
||||||
|
android:pathData="M6.62,10.79C8.06,13.62 10.38,15.94 13.21,17.38L15.41,15.18C15.69,14.9 16.08,14.82 16.43,14.93C17.55,15.3 18.75,15.5 20,15.5A1,1 0,0 1,21 16.5V20A1,1 0,0 1,20 21A17,17 0,0 1,3 4A1,1 0,0 1,4 3H7.5A1,1 0,0 1,8.5 4C8.5,5.25 8.7,6.45 9.07,7.57C9.18,7.92 9.1,8.31 8.82,8.59L6.62,10.79Z"/>
|
||||||
|
|
||||||
|
</vector>
|
@ -2,7 +2,7 @@
|
|||||||
<LinearLayout
|
<LinearLayout
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:gravity="center_vertical">
|
android:gravity="center_vertical">
|
||||||
@ -12,49 +12,69 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="AOHPCTCSeekBar"/>
|
android:text="AOHPCTCSeekBar"/>
|
||||||
|
|
||||||
<cc.winboll.studio.libaes.views.AOHPCTCSeekBar
|
<LinearLayout
|
||||||
android:layout_width="300dp"
|
android:orientation="vertical"
|
||||||
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:id="@+id/fragmentviewpageAOHPCTCSeekBar1"/>
|
android:gravity="center">
|
||||||
|
|
||||||
<androidx.viewpager.widget.ViewPager
|
<cc.winboll.studio.libaes.views.AOHPCTCSeekBar
|
||||||
android:layout_width="match_parent"
|
android:layout_width="300dp"
|
||||||
android:layout_height="0dp"
|
android:layout_height="wrap_content"
|
||||||
android:layout_weight="1.0"
|
android:id="@+id/fragmentviewpageAOHPCTCSeekBar1"
|
||||||
android:id="@+id/fragmentviewpageViewPager1"/>
|
android:padding="10dp"/>
|
||||||
|
|
||||||
<LinearLayout
|
<cc.winboll.studio.libaes.views.AOHPCTCSeekBar
|
||||||
android:layout_width="match_parent"
|
android:layout_width="300dp"
|
||||||
android:layout_height="60dp"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="horizontal"
|
android:id="@+id/fragmentviewpageAOHPCTCSeekBar2"
|
||||||
android:gravity="center"
|
android:padding="10dp"/>
|
||||||
android:id="@+id/fragmentviewpageLinearLayout1">
|
|
||||||
|
|
||||||
<ImageView
|
</LinearLayout>
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_margin="5dp"
|
|
||||||
tools:ignore="ContentDescription"/>
|
|
||||||
|
|
||||||
<ImageView
|
<androidx.viewpager.widget.ViewPager
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="0dp"
|
||||||
android:layout_margin="5dp"
|
android:layout_weight="1.0"
|
||||||
tools:ignore="ContentDescription"/>
|
android:id="@+id/fragmentviewpageViewPager1"/>
|
||||||
|
|
||||||
<ImageView
|
<LinearLayout
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="60dp"
|
||||||
android:layout_margin="5dp"
|
android:orientation="horizontal"
|
||||||
tools:ignore="ContentDescription"/>
|
android:gravity="center"
|
||||||
|
android:id="@+id/fragmentviewpageLinearLayout1">
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_margin="5dp"
|
android:layout_margin="5dp"
|
||||||
tools:ignore="ContentDescription"/>
|
tools:ignore="ContentDescription"/>
|
||||||
|
|
||||||
</LinearLayout>
|
<ImageView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_margin="5dp"
|
||||||
|
tools:ignore="ContentDescription"/>
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_margin="5dp"
|
||||||
|
tools:ignore="ContentDescription"/>
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_margin="5dp"
|
||||||
|
tools:ignore="ContentDescription"/>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<cc.winboll.studio.libappbase.LogView
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="300dp"
|
||||||
|
android:id="@+id/logview"/>
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user