小编Ali*_*lin的帖子

将alpha-transparency设置为仅适用于布局而不是其子项

我发现了这个问题,我遇到了几乎相同的问题.我怎么能只将alpha应用于相对布局而不是它的孩子?有人可以帮忙吗?

我有一个矩形的LinearLayout,它有一些边距,一些圆角和一个0.3的alpha值.在这个布局中,我有4种不同的布局,因为我在不同的位置显示不同的图像.我的问题是虽然主要布局是0.3,但我希望我的孩子完全可见,或者不受它的父母alpha影响,我想知道我怎么能请那样做呢?我尝试在子布局上设置alpha = 1,但它不起作用.将它设置为0确实会使子布局消失,所以看起来我可以减少到0.3以下,但不能超过父级.这是一个错误还是我做错了?谢谢.

android alpha-transparency android-layout

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

RuntimeException:无法生成本机字体

我正在尝试在listview的元素上使用自定义字体.所以在我的ListViewAdapter构造函数中,我有:

private Context context;
private List<Project> projects;
private Typeface tf;
public ListViewAdapter(Context context, int resource, List<Project> projects) {
    super(context, resource, projects);
    this.context = context;
    this.projects = projects;
    tf = getTypefaceForListItems();
}

public Typeface getTypefaceForListItems()
{
    return Typeface.createFromAsset(context.getAssets(), "fonts/OpenSans-Regular.ttf");
}
Run Code Online (Sandbox Code Playgroud)

在getView方法中,我将此字体应用于textview.问题是我得到一个运行时异常:无法生成本机字体,我不明白什么似乎是问题.

这是堆栈跟踪:

java.lang.RuntimeException: native typeface cannot be made
            at android.graphics.Typeface.<init>(Typeface.java:175)
            at android.graphics.Typeface.createFromAsset(Typeface.java:149)
            at com.maxcode.clientcheck.ProjectListAdapter.getTypefaceForListItems(ProjectListAdapter.java:41)
            at com.maxcode.clientcheck.ProjectListAdapter.<init>(ProjectListAdapter.java:25)
            at com.maxcode.clientcheck.ProjectListActivity$GetProjectsAsyncTask.onPostExecute(ProjectListActivity.java:154)
            at com.maxcode.clientcheck.ProjectListActivity$GetProjectsAsyncTask.onPostExecute(ProjectListActivity.java:91)
            at android.os.AsyncTask.finish(AsyncTask.java:631)
            at android.os.AsyncTask.access$600(AsyncTask.java:177)
            at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:137)
            at android.app.ActivityThread.main(ActivityThread.java:4745)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:511)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) …
Run Code Online (Sandbox Code Playgroud)

fonts android

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

Fragment中的notifyDataSetChanged()不刷新listview

我正在尝试显示从网址中提取的项目列表,但我只想一次获取其中的20个...所以我已经实现了一个OnScrollListener来获取用户在最后一项上的项目列表显示.

提取的项目,但我唯一的问题是列表视图没有更新:这是我的代码到目前为止:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    parentView = inflater.inflate(R.layout.activity_event_speakers_alphabetically, container,false);
    listView = (ListView) parentView
            .findViewById(R.id.speakersAlphabeticallyActivityList);
    nameOrderedMembers.addDataBatch(communityMembers);
    nameOrderedAdapter = DelegateViewStateAdapterFactory
            .makeUserListAdapter(getActivity(),
                    nameOrderedMembers.getSortedData(), DelegateViewStateAdapterFactory.OrderType.NAME);
    listView.setAdapter(nameOrderedAdapter);
    AQuery aQuery = new AQuery(listView);
    aQuery.id(R.id.speakersAlphabeticallyActivityList).scrolled(new EndlessScrollListener());
    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                                long arg3) {
            if (nameOrderedAdapter.getItem(arg2) instanceof User) {
                User u = (User) nameOrderedAdapter.getItem(arg2);
                Intent i = new Intent(getActivity(),
                        UserProfileFragmentActivity.class);
                startActivity(i);
            }
        }
    });

    return parentView;
}
Run Code Online (Sandbox Code Playgroud)

现在 - 在onPostExecute方法的AsynkTask中 - 我像这样通知适配器:

communityMembers.addAll(newMembers);
getActivity().runOnUiThread(new …
Run Code Online (Sandbox Code Playgroud)

android listview android-fragments

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

在ScrollView项上设置onClickListener会禁用滚动效果

我有一个自定义的scrollview,并且正在应用touchListener,因为我想在屏幕上上下拖动它。同样在此滚动视图中,我有一些带有附加的clickListener的子项。

我的问题是,当尝试单击项目时,它什么也没有发生。我想问题是触摸监听器以某种方式干扰了点击监听器,但我不知道该怎么办。

这是我的自定义滚动视图:

public class ObservableScrollView extends ScrollView {
private Callbacks mCallbacks;
private boolean enableScrolling = true;

public boolean isEnableScrolling() {
    return enableScrolling;
}

public void setEnableScrolling(boolean enableScrolling) {
    this.enableScrolling = enableScrolling;
}

public ObservableScrollView(Context context, AttributeSet attrs) {
    super(context, attrs);
}

@Override
protected void onScrollChanged(int l, int t, int oldl, int oldt) {
    super.onScrollChanged(l, t, oldl, oldt);
    if (mCallbacks != null) {
        mCallbacks.onScrollChanged(t);
    }
}

@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
    if(isEnableScrolling() && mCallbacks!=null){
        return super.onTouchEvent(ev);
    }
    else{
        return …
Run Code Online (Sandbox Code Playgroud)

android scrollview ontouchlistener onclicklistener

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

未收到Greenrobot EventBus活动

我正在使用Greenrobot EventBus将事件从一个活动传递到另一个活动.

流程如下:Activity1启动 - >扫描条形码 - > Activity2启动 - >接受或拒绝响应并向Activity1发送事件.

所以Activity2通过执行以下操作向Activity1发送一个新事件:

@Override
public void onCreate(){
  EventBus.getDefault().register(this);
  // other initialization code
  EventBus.getDefault().post(new MyEvent());
}
Run Code Online (Sandbox Code Playgroud)

在Activity1中,我注册了事件总线,并且我还有公共的onEvent(MyEvent myEvent)方法来接收事件.

问题是onEvent没有被触发.我看到可能在事件总线对象上有问题(比如活动1和2中的不同实例或某些实例),但它是同一个实例.

我不知道这似乎是什么问题.如果有人可以看一看并告诉我我做错了什么,我会非常感激.

谢谢!

android greenrobot-eventbus

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

如何从PyQt中的另一个线程访问GUI元素

我正在尝试创建一个客户端 - 服务器应用程序,当服务器关闭时,我希望关闭客户端GUI,它正在另一个线程上运行.我希望访问GUI并关闭,但我得到X错误:执行不良(...).我怎么解决这个问题?

python multithreading pyqt

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

更改自定义操作栏标题

我正在使用自定义布局来定位actiobar的标题.

  ActionBar actionBar = getActionBar(); 
  actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
  actionBar.setCustomView(R.layout.action_bar);
Run Code Online (Sandbox Code Playgroud)

其中action_bar是带有textview的简单线性布局

我的问题是我需要每个活动都有不同的名称 - 我需要以编程方式更改主题.所以我正在尝试这样的事情:

private void setActiobarTitle(String title)
{
   LayoutInflater inflator  = (LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
   View v = inflator.inflate(R.layout.action_bar, null);
   TextView titleTxtView = (TextView) v.findViewById(R.id.actionbarTitle);
   titleTxtView.setText(title);
}
Run Code Online (Sandbox Code Playgroud)

当找到并初始化文本视图时,一切似乎都没问题 - 但标题不会改变.任何人都可以告诉我这似乎是什么问题?

android title android-actionbar

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

Thread.Sleep()Android UI

我正在研究Android的记忆游戏,我遇到了问题.当用户点击第二张图像时 - 如果图像不相同,我希望第二张图像显示1,2秒.

我试过的是睡1-2秒.激活第二个图像后的UI线程 - 但这似乎不起作用 - 第二个图像似乎没有显示!(仅显示第一张图片)

这是我的代码:

public void whenTapedImage(View v, int position)
{
    i++;
    ImageView imgV=(ImageView)v;
    if(i%2!=0)
    {
        firstClick=position;
        imgV.setImageResource(im.images.get(firstClick));           
    }
    else
    {   
        secondClick=position;
        imgV.setImageResource(im.images.get(secondClick));                      
        try {
            Thread.currentThread().sleep(1000);
            if(!(im.images.get(firstClick).equals(im.images.get(secondClick))))
            {
                Toast.makeText(easyGame.this, "Try Again!", Toast.LENGTH_SHORT).show();
                im.notifyDataSetChanged();
                gridview.setAdapter(im);
                gridview.invalidate();
                aux=player1Turn;
                player1Turn=player2Turn;
                player2Turn=aux;
            }
            else{
                done=done+2;
                ImageAdapter.keepVisibleViews.add(firstClick);
                ImageAdapter.keepVisibleViews.add(secondClick);
                if(player1Turn==true)
                {
                    player1Score++;
                    String score=Integer.toString(player1Score);
                    score1.setText(score);
                }
                if(player2Turn==true)
                {
                    player2Score++;
                    String score=Integer.toString(player2Score);
                    score2.setText(score);
                }
            }   
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }   
    }           
}
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

user-interface multithreading android

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

Firefox for Android内容提供商?

有人可以给我一个例子,说明如何使用Firefox for Android内容提供商获取我的应用历史记录中的链接列表?

谢谢!

firefox android android-contentprovider

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

将数据从Parse.com加载到ListView中

我一直在使用Parse.com作为我在Android上的照片共享应用程序但是我在列表视图中显示图像和数据时遇到了一些问题.

基本上我想从Parse.com获取数据并将其显示在listView中.

在我的MainActivity中,我有方法downloadContentForMainView() - 我获取数据并将其插入HashMap中 - 在获取所有数据后,我使用适配器在listView中显示数据.

这是我的代码:

private void downloadContentForMainView() throws ParseException
{
    ParseQuery query = new ParseQuery("PhotoUpload");
    query.whereEqualTo("User", username);
    query.findInBackground(new FindCallback() {
        public void done(List<ParseObject> content, ParseException pEx) {
            // TODO Auto-generated method stub
            if(pEx == null && content!=null)
            {
                if(!(content.isEmpty()))
                {
                        if((content!=null) && (!(content.isEmpty())))
                        {
                            for(ParseObject aParseObject : content)
                            {
                                ParseFile image = (ParseFile) aParseObject.get("photp");
                                image.getDataInBackground(new GetDataCallback() {

                                    @Override
                                    public void done(byte[] imageInBytes, ParseException pEx) {
                                        // TODO Auto-generated method stub
                                        bmp = BitmapFactory.decodeByteArray(imageInBytes, 0, imageInBytes.length);
                                    } …
Run Code Online (Sandbox Code Playgroud)

android listview parse-platform

0
推荐指数
1
解决办法
6950
查看次数

DiskLruCache - IllegalArgumentException

我正在开发一个Android应用程序,我从服务器中获取一些图像/视频.我想缓存在磁盘上下载的信息但是当我试图将新数据放入缓存时发生错误并且我不知道为什么因为密钥似乎没问题.这是堆栈跟踪:

    06-03 18:27:38.942: E/AndroidRuntime(10893): java.lang.IllegalArgumentException: keys must match regex [a-z0-9_-]{1,64}: "mYUb5gz5gx"
06-03 18:27:38.942: E/AndroidRuntime(10893):    at com.jakewharton.DiskLruCache.validateKey(DiskLruCache.java:633)
06-03 18:27:38.942: E/AndroidRuntime(10893):    at com.jakewharton.DiskLruCache.edit(DiskLruCache.java:421)
06-03 18:27:38.942: E/AndroidRuntime(10893):    at com.jakewharton.DiskLruCache.edit(DiskLruCache.java:416)
06-03 18:27:38.942: E/AndroidRuntime(10893):    at com.licenta.mementoapp.utils.DiskLruImageCache.put(DiskLruImageCache.java:69)
06-03 18:27:38.942: E/AndroidRuntime(10893):    at com.licenta.mementoapp.datafragments.PhotosFragment$1$1.done(PhotosFragment.java:92)
Run Code Online (Sandbox Code Playgroud)

key ="mYUb5gz5gx"不匹配正则表达式吗?

android caching

0
推荐指数
1
解决办法
1248
查看次数