所以目前,我正在RecyclerView使用Camera Intent 捕获图像并更新它:
private void cameraIntent() {
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (takePictureIntent.resolveActivity(getActivity().getPackageManager()) != null) {
File photoFile = null;
try {
photoFile = createImageFile();
} catch (IOException ex) {
Log.e(TAG, ex.getLocalizedMessage());
}
if (photoFile != null) {
Uri uri = FileProvider.getUriForFile(getActivity().getApplicationContext(),
"packagename.fileprovider",
photoFile);
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
startActivityForResult(takePictureIntent, REQUEST_TAKE_PHOTO);
}
}
}
Run Code Online (Sandbox Code Playgroud)
在此之前发生的事情是它会触发setOnItemClickListener interface我在my RecyclerView.Adapter中创建的意图,该意图被调用onCreate以填充来自web服务器的数据(或者当setVisibleUserHint它们再次重新进入片段时被触发).
//初始摄像机数据
if (isCamera) {
cameraArray = object.getJSONArray(PROFILE_DETAILS_CAMERA_ARRAY_KEY);
sortAdapter(true, object, cameraArray);
} else {
galleryArray = object.getJSONArray(PROFILE_DETAILS_GALLERY_ARRAY_KEY); …Run Code Online (Sandbox Code Playgroud) 我已经放了一些EditText,RecyclerView因为我需要得到一些价值.实施是这样的:
<android.support.v7.widget.RecyclerView
android:layout_below="@id/firstrow"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:focusableInTouchMode="true"
android:descendantFocusability="beforeDescendants"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:id="@+id/rectable"
android:layout_marginLeft="@dimen/table_margin"
android:layout_marginRight="@dimen/table_margin"
android:layout_marginBottom="300dp" />
Run Code Online (Sandbox Code Playgroud)
这是自定义xml与一些editText:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:background="@color/white"
android:orientation="horizontal"
android:layout_width="match_parent"
android:gravity="center"
android:layout_height="60dp ">
<TextView
android:text="TextView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:id="@+id/description"
android:layout_weight="1"
android:textColor="@color/black" />
<View
style="@style/VerticalSeparator" />
<EditText
android:hint="lol"
android:id="@+id/weight"
android:focusable="true"
style="@style/DefaultEditCellStyle" />
<View
style="@style/VerticalSeparator" />
<EditText
android:hint="lol"
android:id="@+id/arm"
android:focusable="true"
style="@style/DefaultEditCellStyle" />
<View
style="@style/VerticalSeparator" />
<EditText
android:hint="lol"
android:focusable="true"
android:id="@+id/moment"
style="@style/DefaultEditCellStyle" />
Run Code Online (Sandbox Code Playgroud)
实际上,当我点击EditText它打开键盘,失去焦点并立即关闭键盘,所以不可能写入这些.我也试过读其他问题,把这个:
recyclerView.setFocusable(true);
recyclerView.setDescendantFocusability(ViewGroup.FOCUS_BEFORE_DESCENDANTS);
recyclerView.setAdapter(adapter);
Run Code Online (Sandbox Code Playgroud)
但是,在不同的情况下listview,它不起作用.
我怎么能解决这个问题?谢谢
我正在尝试在一个activity内部顶部的图像上进行一些简单的照片处理ImageView,它平均有一个200dp高度并与其父级的宽度相匹配.
我已经实现了一个自定义onTouchListener类,它创建matrix并转换图像ImageView
拖动:
case MotionEvent.ACTION_MOVE:
if (mode == DRAG) {
matrix.set(savedMatrix);
matrix.postTranslate(v.getX(), event.getY() - start.y);
}
break;
Run Code Online (Sandbox Code Playgroud)
这非常有效,它只在y轴上拖动图像.但是当用户发布时,我希望图像裁剪到可见ImageView区域的边界.
裁剪:
case MotionEvent.ACTION_UP:
if (mode == DRAG) {
Bitmap bitmap = drawableToBitmap(view.getDrawable());
Bitmap result = Bitmap.createBitmap(bitmap,view.getLeft(), view.getTop(), view.getWidth(), view.getHeight());
view.setImageBitmap(result);
}
break;
Run Code Online (Sandbox Code Playgroud)
这会将图像裁剪为正确的大小,但仅从图像视图的背景顶部而不是可见边界.通过调用Bitmap类函数,createBitmap(int x, int y, int width, int height)我唯一的假设view.getTop()就是让它从顶部开始.
所以,我的问题是:我如何计算可见视图边界的顶部与背景/矩阵边界之间的差异?
注意:图像显示位于活动顶部的图像(蓝色)(青色看区域只是背景不可见边界,而ImageView不是活动)
我想强调一点,我不希望使用任何第三方库来实现这一目标.
如果需要,我非常愿意提供额外的代码.
更新:
完整onTouch …
这篇文章可能是重复的,但我想做的是制作一个浮动动作按钮(FAB)(来自设计支持库),黑色背景和边框与我的主要颜色颜色相同.
我已经阅读了这个问题所示的@vipul_asri的答案.
但是,当我将"透明"颜色替换为黑色(或任何其他颜色)时,这会将我的FAB的背景更改为backgroundTint也没有边框的颜色.
将边框放在FAB按钮上是否很难?有谁知道怎么可能实现这个目标?
提前感谢您的回答.
我知道android中有很多上下文
所以当我创建一个new TextView我必须context像这样传递构造函数
TextView textView = new TextView(this);
Run Code Online (Sandbox Code Playgroud)
我知道它是必要的,但为什么不只是创建和Android为我处理上下文?
我有一个给定的日期:
01/10/2017(mm/dd/yyyy)
Calendar c = c.getInstance();
c.setTime(date);
Run Code Online (Sandbox Code Playgroud)
现在指向本月的最后一天,我使用以下代码:
c.set(Calendar.Date, c.getActualMaximum(Calendar.Date));
Run Code Online (Sandbox Code Playgroud)
预期产出:2017年1月31日
原始输出:02/01/2017
我没有得到预期的输出.它在下个月的第一天归还我.
谁能帮帮我吗?
我有这个Setting.class,它有一些变量.
private int timeRemember, timeConcentration;
private boolean hearts, spades, diamonds, clubs;
Run Code Online (Sandbox Code Playgroud)
我知道我应该为他们创建getter和setter,但它需要50行代码.如果我有更多的变量,让我们说40,它就像200左右.
我的问题是 - 每个人都这样做?或者有一些我不知道的东西?