小编mas*_*mic的帖子

为什么Android Studio无法识别.jar库导入?

我试图在我的Android Studio项目中使用一些.jar文件作为库.

我一直在寻找如何做到这一点,常规方法是将.jar文件复制到libs文件夹中,然后将其添加为库.我知道libs文件夹必须位于"项目"视图中的"app"模块中.但是没有出现添加为库的选项.所以我的方法是手动添加它,右击"app"并:

打开模块设置/ app/Dependencies /并将.jar文件添加为文件依赖项.

然后,我转到我的.class但导入建议不允许我选择这些库作为导入.

我从"android"视图尝试了另一种方法.右键单击"app"并选择"新模块",我选择Import .JAR或.AAR Package,然后我从Open Module Setings中执行与之前相同的操作,但这次我将其添加为Module Dependency.

在booth方式中,gradle.build文件会更新,添加这些依赖项,但在进入活动选择导入时,它不会让我有机会从这些中选择导入.

我花了整整一天时间试图解决这个问题,但是我没有让我的活动认识到从这些文件中导入的内容,所以如果有人能告诉我我做错了什么或者我缺少什么,我会很感激. .

顶级build.gradle文件:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
         classpath 'com.android.tools.build:gradle:1.1.3'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}
Run Code Online (Sandbox Code Playgroud)

app级build.gradle文件:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.2"

    defaultConfig {
        applicationId "com.myapp"
        minSdkVersion 14
        targetSdkVersion 21
        versionCode 1
        versionName …
Run Code Online (Sandbox Code Playgroud)

android jar android-studio

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

android int到十六进制转换

我必须将int转换为十六进制值.这是例如int值:

int_value = -13516;
Run Code Online (Sandbox Code Playgroud)

要转换为十六进制值,我会:

hex_value = Integer.toHexString(int_value);
Run Code Online (Sandbox Code Playgroud)

我应该得到的价值是:( -34CC我不知道我是否应该让它成为积极的).

事情就是以这种方式进行转换,我获得的价值是: ffff cb34

我不能使用此功能进行此转换吗?

int android hex

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

打开支架后反斜杠是什么意思?

在宏声明中,如:

#define WAIT_SPI2_TRANSMISSON_END() {while ((SPI2_SR & SPI_SR_TXCTR_MASK) != 0) {\
                                     if( SPI2_SR & SPI_SR_RFDF_MASK ) {\
                                       (void)SPI2_POPR;\
                                       SPI2_SR |= SPI_SR_RFDF_MASK ;\
                                     }}\
Run Code Online (Sandbox Code Playgroud)

这些反斜杠(\)的含义是什么?

c c++

13
推荐指数
3
解决办法
3985
查看次数

ActionBar上的动态TextView

我需要在ActionBar中实现TextView.此TextView显示蓝牙连接的状态,因此它将根据此状态进行更新.

我不是在谈论改变ActionBar的标题,而是在标题下或在右侧添加textview fe.

目前,我所做的是在menu.xml中创建一个项目:

<item
    android:id="@+id/statusTextview"
    android:actionViewClass="android.widget.TextView"
    android:showAsAction="ifRoom"
    android:title="Disconected" />
Run Code Online (Sandbox Code Playgroud)

然后在mainActivity上添加它:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.bluetooth, menu);
    return true;
}
@Override
public boolean onPrepareOptionsMenu(final Menu menu) {
    final MenuItem menuItem = menu.findItem(R.id.statusTextview);
    tvStatus = (TextView) menuItem.getActionView();
    return super.onPrepareOptionsMenu(menu);
}
Run Code Online (Sandbox Code Playgroud)

但它无法正常工作.第一次应该显示Disconnected状态,不显示任何内容.然后,当状态更改并且textview必须更新时,它会抛出NPE.

android menu bluetooth android-actionbar

13
推荐指数
1
解决办法
2万
查看次数

隐藏support.v7.widget.toolbar上的app标题

我开始开发一个新的应用程序,我正在试图给它一个材料设计外观.为此,我使用的是v7支持兼容性.

在应用程序的某些活动中,我需要工具栏不显示应用程序标题,我不知道如何,但它默认显示.在这些活动中,我在工具栏的右侧有一个textview,就像一个按钮,我已经实现了traex的RippleEffect.

所以,基本上我的问题是,如何从工具栏中隐藏应用程序的标题?因为即使我这样做:

toolbar.setTitle("");
Run Code Online (Sandbox Code Playgroud)

要么

toolbar.setTitle(null);
Run Code Online (Sandbox Code Playgroud)

它继续出现.

这是我的代码:

自定义工具栏xml [toolbar_intro.xml]:

<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:local="http://schemas.android.com/apk/res-auto"
    xmlns:ripple="http://schemas.android.com/apk/res-auto"
    xmlns:app="http://schemas.android.com/tools"
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:minHeight="?attr/actionBarSize"
    android:background="?attr/colorPrimary"
    android:elevation="4dp"
    local:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    local:popupTheme="@style/ThemeOverlay.AppCompat.Light">

    <com.andexert.library.RippleView
        android:id="@+id/more"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_gravity="right"
        android:layout_marginRight="40dp"
        ripple:rv_centered="false"
        app:rv_rippleDuration="1">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/toolbar_text"
            android:textColor="@color/White"
            android:textStyle="bold"
            android:textSize="25sp"
            android:text="Next"/>
    </com.andexert.library.RippleView>
</android.support.v7.widget.Toolbar>
Run Code Online (Sandbox Code Playgroud)

这是我在布局中包含工具栏的方式:

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <include
        android:id="@+id/toolbar"
        layout="@layout/toolbar_intro" />

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">

        <ImageView
            ...

    </RelativeLayout>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

这是活动:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.intro_wellcome);

    toolbar= (Toolbar) findViewById(R.id.toolbar);
    if (toolbar != null) {
        setSupportActionBar(toolbar);
        toolbar.setTitle("");
    } …
Run Code Online (Sandbox Code Playgroud)

android toolbar

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

将十六进制字符串转换为byte []

我有一个像这样的字符串:

init_thread = "2b11020000ed"
Run Code Online (Sandbox Code Playgroud)

我必须通过蓝牙发送这个字符串,我这样做:

byte[] init = init_thread.getBytes();
GlobalVar.mTransmission.write(init);
Run Code Online (Sandbox Code Playgroud)

我需要的是init_thread在将字符串转换为字节之前定义字符串是十六进制字符串,因为如果我这样做,它就会出错:

现在做什么= 2(1字节),b(1字节),1(1字节),1(1字节)......

必须做什么= 2b(1byte),11(1byte),02(1byte)......

string android hex byte

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

对自定义导航抽屉的波纹效果

我正在开发我的第一个应用程序,为它提供新的材料外观.我有点失落,所以我正在按照一些教程来实现工具栏,导航抽屉等等.我不得不说我正在做它提供兼容前棒棒糖Android版本,所以我正在使用支持图书馆.

对我的问题有什么看法,就是我刚刚在本教程之一中实现了导航抽屉,并使用以下库来实现兼容性:

support.v4.widget.DrawerLayout
support.v7.widget.RecyclerView
Run Code Online (Sandbox Code Playgroud)

我认为代码实现太长了,不能把它放在这里,所以我将提供本教程的链接,我完全按照这里所说的完成.

我的问题是,当我从导航抽屉的行中选择一个项目时,它会完美地打开它的对应框架,但是,它在触摸它时不会显示任何涟漪效果或任何触摸效果.像这样的东西:

在此输入图像描述

我已经看了一些其他的教程,例如,属于附加的gif的教程,看看他们是否使用任何方法或实现来提供触摸的效果,但没有实现任何东西来获得这种效果,只是onclick方法.

那么,这段代码有什么问题,我怎么能修改它,或者我可以添加什么来获得这种效果呢?

android navigation-drawer material-design

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

LocalBroadcastManager用于多个意图

我正在一个应用程序中工作,我刚刚实现了ViewPager.我第一次使用制表符但是当我对ViewPager进行更改时,我开始遇到从Activity到片段的数据传输问题.

我终于找到了解释这个问题的帖子,并建议在使用ViewPager时使用LocalBroadcastManager将数据从Activity发送到Frament.我已经实现了这个代码并且工作正常:

Fragment1.java

public class Fragment1 extends Fragment {

    public static final String ACTION_INTENT = "fragment1.action.BOX_UPDATE";

    /*Register the receiver*/
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        IntentFilter filter = new IntentFilter(ACTION_INTENT);
       LocalBroadcastManager.getInstance(getActivity()).registerReceiver(ActivityDataReceiver, filter);
    }

    /*Broadcast Receiver*/
    protected BroadcastReceiver ActivityDataReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            if(ACTION_INTENT.equals(intent.getAction())) {
                String text = intent.getStringExtra("TEXT");
                witeOnBox(text);
            }
        }
    };

    /*Method which changes the text with the icoming value*/
    public void witeOnBox(String text) {
        tv_log.setText(text);

    }

    /*Unregister …
Run Code Online (Sandbox Code Playgroud)

android android-intent android-fragments

7
推荐指数
1
解决办法
4790
查看次数

更新材料导航抽屉头

我正在使用最近提供的Google支持库将导航抽屉添加到我的应用中.在导航抽屉的标题中,我定义了一个CircleImageView来设置用户的个人资料照片,下面是他的名字.

在此输入图像描述

所有这些信息首先由用户在应用程序的第一次启动时定义,因此当mainActivity启动时,图像和名称将加载到标头中.但我正在给用户提供在应用程序内修改这些内容的机会.如果用户转到配置文件frag,并选择新图像作为配置文件图片,或者如果他更改了名称,则此参数将不会在导航抽屉的标题中更新,直到应用程序关闭并再次加载.

这就是我在mainActivity中定义的方式:

public class MainActivity extends AppCompatActivity implements DrawerLayout.DrawerListener {

private NavigationView navView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        ....

        navView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
            @Override public boolean onNavigationItemSelected(MenuItem menuItem) {
                menuItem.setChecked(true);
                displayFragment(menuItem.getItemId());
                drawerLayout.closeDrawers();
                return true;
            }
        });
    }
Run Code Online (Sandbox Code Playgroud)

没有必要实现DrawerLayout.DrawerListener,但是如上图所示,我已经完成了尝试实时更新标头.这些实现了下一个方法:

@Override
public void onDrawerSlide(View drawerView, float slideOffset) {
}
@Override
public void onDrawerOpened(View drawerView) {
        try {
            ContextWrapper cw = new ContextWrapper(getApplicationContext());
            File directory = cw.getDir("profile", Context.MODE_PRIVATE);
            File mypath = new File(directory, "thumbnail.png");
            Bitmap bitmap = BitmapFactory.decodeStream(new FileInputStream(mypath));
            thumbview.setImageBitmap(bitmap); …
Run Code Online (Sandbox Code Playgroud)

android navigation-drawer material-design

7
推荐指数
1
解决办法
2935
查看次数

动态设置布局参数

我正在使用CameraPreview示例API演示.我需要添加一些覆盖SurfaceView的视图(按钮等).

为此,我正在尝试设置他们的参数,但它们始终出现在屏幕的左上角.

这是代码的onCreate方法:

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);

        btnTakePhoto = new Button(this);
        btnTakePhoto.setBackgroundResource(android.R.drawable.ic_menu_camera);


        /*Set container*/
        mPreview = new Preview(this);
        setContentView(mPreview);

        /*Set button params and add it to the view*/
        RelativeLayout.LayoutParams buttonParams = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
        buttonParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
        buttonParams.addRule(RelativeLayout.CENTER_VERTICAL);
        addContentView(btnTakePhoto, buttonParams);


        numberOfCameras = Camera.getNumberOfCameras();

        CameraInfo cameraInfo = new CameraInfo();
        for (int i = 0; i < numberOfCameras; i++) {
            Camera.getCameraInfo(i, cameraInfo);
            if (cameraInfo.facing == CameraInfo.CAMERA_FACING_BACK) {
                defaultCameraId = i;
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

不得不说这里的价值观

RelativeLayout.LayoutParams buttonParams = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, …
Run Code Online (Sandbox Code Playgroud)

layout camera android params

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