下面列出了android.widget.ListView#getDivider ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
final Context context = inflater.getContext();
final Resources res = context.getResources();
final View view = inflater.inflate(R.layout.fragment_directory, container, false);
mProgressBar = (MaterialProgressBar) view.findViewById(R.id.progressBar);
mEmptyView = (CompatTextView)view.findViewById(android.R.id.empty);
mListView = (ListView) view.findViewById(R.id.list);
mListView.setOnItemClickListener(mItemListener);
mListView.setMultiChoiceModeListener(mMultiListener);
mListView.setRecyclerListener(mRecycleListener);
// Indent our list divider to align with text
final Drawable divider = mListView.getDivider();
final boolean insetLeft = res.getBoolean(R.bool.list_divider_inset_left);
final int insetSize = res.getDimensionPixelSize(R.dimen.list_divider_inset);
if (insetLeft) {
mListView.setDivider(new InsetDrawable(divider, insetSize, 0, 0, 0));
} else {
mListView.setDivider(new InsetDrawable(divider, 0, 0, insetSize, 0));
}
mGridView = (GridView) view.findViewById(R.id.grid);
mGridView.setOnItemClickListener(mItemListener);
mGridView.setMultiChoiceModeListener(mMultiListener);
mGridView.setRecyclerListener(mRecycleListener);
return view;
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
final Resources res = getActivity().getResources();
fab = (FloatingActionButton)view.findViewById(R.id.fab);
fab.setOnClickListener(this);
if(isTelevision()){
fab.setVisibility(View.GONE);
}
mProgressBar = (MaterialProgressBar) view.findViewById(R.id.progressBar);
mEmptyView = (CompatTextView)view.findViewById(android.R.id.empty);
mListView = (ListView) view.findViewById(R.id.list);
mListView.setOnItemClickListener(mItemListener);
if(isTelevision()) {
mListView.setOnItemLongClickListener(mItemLongClickListener);
}
fab.attachToListView(mListView);
// Indent our list divider to align with text
final Drawable divider = mListView.getDivider();
final boolean insetLeft = res.getBoolean(R.bool.list_divider_inset_left);
final int insetSize = res.getDimensionPixelSize(R.dimen.list_divider_inset);
if (insetLeft) {
mListView.setDivider(new InsetDrawable(divider, insetSize, 0, 0, 0));
} else {
mListView.setDivider(new InsetDrawable(divider, 0, 0, insetSize, 0));
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
final Context context = inflater.getContext();
final Resources res = context.getResources();
final View view = inflater.inflate(R.layout.fragment_directory, container, false);
mProgressBar = (MaterialProgressBar) view.findViewById(R.id.progressBar);
mEmptyView = (CompatTextView)view.findViewById(android.R.id.empty);
mListView = (ListView) view.findViewById(R.id.list);
mListView.setOnItemClickListener(mItemListener);
mListView.setMultiChoiceModeListener(mMultiListener);
mListView.setRecyclerListener(mRecycleListener);
// Indent our list divider to align with text
final Drawable divider = mListView.getDivider();
final boolean insetLeft = res.getBoolean(R.bool.list_divider_inset_left);
final int insetSize = res.getDimensionPixelSize(R.dimen.list_divider_inset);
if (insetLeft) {
mListView.setDivider(new InsetDrawable(divider, insetSize, 0, 0, 0));
} else {
mListView.setDivider(new InsetDrawable(divider, 0, 0, insetSize, 0));
}
mGridView = (GridView) view.findViewById(R.id.grid);
mGridView.setOnItemClickListener(mItemListener);
mGridView.setMultiChoiceModeListener(mMultiListener);
mGridView.setRecyclerListener(mRecycleListener);
return view;
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
final Resources res = getActivity().getResources();
fab = (FloatingActionButton)view.findViewById(R.id.fab);
fab.setOnClickListener(this);
if(isTelevision()){
fab.setVisibility(View.GONE);
}
mProgressBar = (MaterialProgressBar) view.findViewById(R.id.progressBar);
mEmptyView = (CompatTextView)view.findViewById(android.R.id.empty);
mListView = (ListView) view.findViewById(R.id.list);
mListView.setOnItemClickListener(mItemListener);
if(isTelevision()) {
mListView.setOnItemLongClickListener(mItemLongClickListener);
}
fab.attachToListView(mListView);
// Indent our list divider to align with text
final Drawable divider = mListView.getDivider();
final boolean insetLeft = res.getBoolean(R.bool.list_divider_inset_left);
final int insetSize = res.getDimensionPixelSize(R.dimen.list_divider_inset);
if (insetLeft) {
mListView.setDivider(new InsetDrawable(divider, insetSize, 0, 0, 0));
} else {
mListView.setDivider(new InsetDrawable(divider, 0, 0, insetSize, 0));
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
final Context context = inflater.getContext();
final Resources res = context.getResources();
final View view = inflater.inflate(R.layout.fragment_directory, container, false);
mProgressBar = (MaterialProgressBar) view.findViewById(R.id.progressBar);
mEmptyView = (CompatTextView)view.findViewById(android.R.id.empty);
mListView = (ListView) view.findViewById(R.id.list);
mListView.setOnItemClickListener(mItemListener);
mListView.setMultiChoiceModeListener(mMultiListener);
mListView.setRecyclerListener(mRecycleListener);
// Indent our list divider to align with text
final Drawable divider = mListView.getDivider();
final boolean insetLeft = res.getBoolean(R.bool.list_divider_inset_left);
final int insetSize = res.getDimensionPixelSize(R.dimen.list_divider_inset);
if (insetLeft) {
mListView.setDivider(new InsetDrawable(divider, insetSize, 0, 0, 0));
} else {
mListView.setDivider(new InsetDrawable(divider, 0, 0, insetSize, 0));
}
mGridView = (GridView) view.findViewById(R.id.grid);
mGridView.setOnItemClickListener(mItemListener);
mGridView.setMultiChoiceModeListener(mMultiListener);
mGridView.setRecyclerListener(mRecycleListener);
return view;
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
final Resources res = getActivity().getResources();
fab = (FloatingActionButton)view.findViewById(R.id.fab);
fab.setOnClickListener(this);
if(isTelevision()){
fab.setVisibility(View.GONE);
}
mProgressBar = (MaterialProgressBar) view.findViewById(R.id.progressBar);
mEmptyView = (CompatTextView)view.findViewById(android.R.id.empty);
mListView = (ListView) view.findViewById(R.id.list);
mListView.setOnItemClickListener(mItemListener);
if(isTelevision()) {
mListView.setOnItemLongClickListener(mItemLongClickListener);
}
fab.attachToListView(mListView);
// Indent our list divider to align with text
final Drawable divider = mListView.getDivider();
final boolean insetLeft = res.getBoolean(R.bool.list_divider_inset_left);
final int insetSize = res.getDimensionPixelSize(R.dimen.list_divider_inset);
if (insetLeft) {
mListView.setDivider(new InsetDrawable(divider, insetSize, 0, 0, 0));
} else {
mListView.setDivider(new InsetDrawable(divider, 0, 0, insetSize, 0));
}
}
@Override
public Object[] setup(View view, TypedArray a, int attr) {
ListView listView = (ListView) view;
Drawable drawable1 = listView.getDivider();
Drawable drawable2 = a.getDrawable(attr);
return new Drawable[]{ drawable1, drawable2 };
}
@Override
public Bitmap capture(@NonNull ListView listView) {
List<View> viewList = new ArrayList<>();
try {
ListAdapter adapter = listView.getAdapter();
Drawable dividerDrawable = listView.getDivider();
Drawable backgroundDrawable = listView.getBackground();
int dividerHeight = listView.getDividerHeight();
int itemsCount = adapter.getCount();
int allHeight = listView.getPaddingTop() + listView.getPaddingBottom();
int allWidth = listView.getMeasuredWidth() + listView.getPaddingLeft() + listView.getPaddingRight();
for (int i = 0; i < adapter.getCount(); i++) {
View childView = adapter.getView(i, null, listView);
childView.measure(
View.MeasureSpec.makeMeasureSpec(listView.getWidth(), View.MeasureSpec.EXACTLY),//
View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
childView.layout(0, 0, childView.getMeasuredWidth(), childView.getMeasuredHeight());
childView.setDrawingCacheEnabled(true);
childView.buildDrawingCache();
viewList.add(childView);
allHeight += childView.getMeasuredHeight();
}
allHeight += (itemsCount - 1) * dividerHeight;
Bitmap bigBitmap = Bitmap.createBitmap(allWidth, allHeight, Bitmap.Config.RGB_565);
Canvas bigCanvas = new Canvas(bigBitmap);
Paint paint = new Paint();
int iHeight = listView.getPaddingTop();
final Rect bounds = new Rect();
bounds.set(0, 0, allWidth, allHeight);
backgroundDrawable.setBounds(bounds);
backgroundDrawable.draw(bigCanvas);
for (int i = 0; i < viewList.size(); i++) {
View view = viewList.get(i);
Bitmap bmp = view.getDrawingCache();
bigCanvas.drawBitmap(bmp, listView.getPaddingLeft(), iHeight, paint);
iHeight += bmp.getHeight();
if (i < viewList.size() - 1 && dividerHeight > 0 && dividerDrawable != null) {
bounds.set(0, iHeight, allWidth, iHeight + dividerHeight);
dividerDrawable.setBounds(bounds);
dividerDrawable.draw(bigCanvas);
iHeight += dividerHeight;
}
view.setDrawingCacheEnabled(false);
view.destroyDrawingCache();
bmp.recycle();
bmp = null;
}
report(bigBitmap);
return bigBitmap;
} finally {
viewList.clear();
viewList = null;
}
}