我想创建活动的“整页” PDF。该视图包含一个RecyclerView,其中包含许多项。
我可以使用Recyclerview的完整尺寸,但是仅从当前视图绘制文件。这是我的代码:
public void tela (){ // create a new document
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT)
{
PdfDocument document = new PdfDocument();
getScreenshotFromRecyclerView(mRecyclerView);
content = mRecyclerView;
content.setBackgroundColor(Color.parseColor("#303030"));
PdfDocument.PageInfo pageInfo = new PdfDocument.PageInfo.Builder(wil,
height, 1).create();
// create a new page from the PageInfo
PdfDocument.Page page = document.startPage(pageInfo);
// repaint the user's text into the page
content.draw(page.getCanvas());
// do final processing of the page
document.finishPage(page);
// saving pdf document to sdcard
SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy - HH-mm-ss",Locale.getDefault());
String pdfName = "Revisões_" …Run Code Online (Sandbox Code Playgroud) 我发现当软键盘启动时,小吃栏会自动扩展以适应屏幕上列表视图的大小.
我已经能够通过以编程方式设置高度来稍微解决这个问题,然而文本从快餐栏中消失,我不知道如何将其添加回来.
ViewGroup.LayoutParams lp = snackbarView.getLayoutParams();
lp.height = 150;
snackbarView.setLayoutParams(lp);
Run Code Online (Sandbox Code Playgroud)
小吃店添加如下:
mConnectionLostSnackbar = Snackbar.make(view, mConnectionLostString, Snackbar.LENGTH_INDEFINITE);
final View snackbarView = mConnectionLostSnackbar.getView();
TextView textView = snackbarView.findViewById(android.support.design.R.id.snackbar_text);
textView.setLineSpacing(0, SNACKBAR_LINE_SPACING_MULTIPLIER);
snackbarView.getViewTreeObserver().addOnPreDrawListener(new NotDismissiblePreDrawListener(snackbarView));
mConnectionLostSnackbar.show();
Run Code Online (Sandbox Code Playgroud)
我很感激任何关于键盘启动时没有快餐栏扩展的想法.提前致谢.
我有一个要求,即可拖动的视图需要将阴影最初直接放置在视图的顶部 - 也就是说,它覆盖整个视图而不是与触摸点相关.
我一直在尝试各种各样的方法来使用我的子类,View.DragShadowBuilder但没有运气.我希望使用drawRect允许我指定矩形点,以便它将绘制在与我的视图相同的矩形中,但这会导致不绘制画布.
但是,仅使用canvas.drawColor(Color.CYAN)绘制矩形,但相对于触摸点.
这是我的尝试使用drawRect:
private class VideoDragShadowBuilder extends View.DragShadowBuilder {
public VideoDragShadowBuilder(View v) {
super(v);
}
@Override
public void onProvideShadowMetrics (Point size, Point touch) {
int width, height;
width = getView().getWidth();
height = getView().getHeight();
size.set(width, height);
touch.set(width / 2, height / 2);
}
@Override
public void onDrawShadow(Canvas canvas) {
//canvas.drawColor(Color.CYAN);
Paint paint = new Paint();
paint.setAntiAlias(true);
paint.setAlpha(45);
paint.setStyle(Paint.Style.FILL);
paint.setColor(Color.CYAN);
canvas.drawRect(getView().getLeft(), getView().getTop(), getView().getRight(), getView().getBottom(), paint);
}
}
Run Code Online (Sandbox Code Playgroud)
在这里,由于我触摸的位置,蓝色矩形与下方的视图稍微不对齐 - 我希望它完全覆盖视图,无论用户触摸的位置如何.

我正在尝试对我的应用程序实施材料设计,并且正在学习教程。我的问题是打开导航抽屉时,单击手机上的“后退”按钮,它将关闭我的应用程序,而不是关闭抽屉。如何关闭抽屉而不退出应用程序?谢谢。
这是代码
public class MainActivity extends AppCompatActivity implements FragmentDrawer.FragmentDrawerListener {
private static String TAG = MainActivity.class.getSimpleName();
private Toolbar mToolbar;
private FragmentDrawer drawerFragment;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mToolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(mToolbar);
getSupportActionBar().setDisplayShowHomeEnabled(true);
drawerFragment = (FragmentDrawer)
getSupportFragmentManager().findFragmentById(R.id.fragment_navigation_drawer);
drawerFragment.setUp(R.id.fragment_navigation_drawer, (DrawerLayout) findViewById(R.id.drawer_layout), mToolbar);
drawerFragment.setDrawerListener(this);
// display the first navigation drawer view on app launch
displayView(0);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu); …Run Code Online (Sandbox Code Playgroud)