小编Bra*_*son的帖子

在Camera Intent之后更新RecyclerView.Adapter

所以目前,我正在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)

java android android-recyclerview

10
推荐指数
1
解决办法
882
查看次数

RecyclerView问题:EditText失去焦点

我已经放了一些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,它不起作用.

我怎么能解决这个问题?谢谢

android android-recyclerview

9
推荐指数
1
解决办法
8326
查看次数

Android - 拖动和裁剪问题

我正在尝试在一个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

注意:图像显示位于活动顶部的图像(蓝色)(青色看区域只是背景不可见边界,而ImageView不是活动)

我想强调一点,我不希望使用任何第三方库来实现这一目标.

如果需要,我非常愿意提供额外的代码.

更新:

完整onTouch …

android

8
推荐指数
1
解决办法
283
查看次数

设置FAB边框颜色

这篇文章可能是重复的,但我想做的是制作一个浮动动作按钮(FAB)(来自设计支持库),黑色背景和边框与我的主要颜色颜色相同.

我已经阅读了这个问题所示的@vipul_asri的答案.

但是,当我将"透明"颜色替换为黑色(或任何其他颜色)时,这会将我的FAB的背景更改为backgroundTint也没有边框的颜色.

将边框放在FAB按钮上是否很难?有谁知道怎么可能实现这个目标?

提前感谢您的回答.

android border-color floating-action-button

7
推荐指数
0
解决办法
1210
查看次数

为什么Android使用多个上下文而每个上下文都不同?

我知道android中有很多上下文

  1. 应用
  2. 活动
  3. 服务
  4. 内容提供商
  5. 广播接收器

所以当我创建一个new TextView我必须context像这样传递构造函数

TextView textView = new TextView(this);
Run Code Online (Sandbox Code Playgroud)

我知道它是必要的,但为什么不只是创建和Android为我处理上下文?

android android-context

6
推荐指数
1
解决办法
537
查看次数

如何获取给定日期的月份的最后一天

我有一个给定的日期:

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

我没有得到预期的输出.它在下个月的第一天归还我.

谁能帮帮我吗?

java calendar date

4
推荐指数
1
解决办法
6829
查看次数

我需要创建一百个getter和setter吗?

我有这个Setting.class,它有一些变量.

private int timeRemember, timeConcentration;
private boolean hearts, spades, diamonds, clubs;
Run Code Online (Sandbox Code Playgroud)

我知道我应该为他们创建getter和setter,但它需要50行代码.如果我有更多的变量,让我们说40,它就像200左右.

我的问题是 - 每个人都这样做?或者有一些我不知道的东西?

java

3
推荐指数
1
解决办法
98
查看次数