Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Вписать текст в одну строку - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android .java to .smali error http://www.cyberforum.ru/android-dev/thread1858147.html
Здравствуйте, возникла необходимость конвертнуть один файл джава в смали(чтоб апктулу скормить), стандартный jd-gui не может редактировать код java, отредактировал другим способом(через блокнот:D). И...
Программирование Android EditText долго отображается Добрый день! Делаю для себя редактор, заодно и учусь писать приложения для Android, и столкнулся с такой проблемой, при открытии файла большого размера (например 17Кб отображается примерно черзе 25... http://www.cyberforum.ru/android-dev/thread1858086.html
Смещается изображение за границы ImageView Программирование Android
Моя головная боль - это рисование лайаутов. В очередной раз встал в ступор... Почему изображение из ImageView выходит за рамки самого ImageView'а? И может подскажете, как правильно набросать на...
Как сделать, чтобы определенный layout включался при определенном языке? Программирование Android
К примеру у меня приложение на 3 языках. Как сделать чтобы когда я включал русский язык, показывался другой layout вместо изначально? Вобщем заменение страницы с определенным языком?
Программирование Android Как убрать эффект нажатия в TabLayout http://www.cyberforum.ru/android-dev/thread1857952.html
Привет всем! При нажатии на tab на мгновение появляется соответствующий "эффект нажатия". Как сделать так, чтобы просто менялись иконки без каких-либо эффектов. TabLayout ...
Программирование Android Отличия debug режима от release Как в Android Studio включить сборку в режиме release? И чем релиз сборка отличается от дебаг? Какие внешние отличия? Чем отличается apk в двух режимах? И в режиме релиза можно отлаживать проект или... подробнее

Показать сообщение отдельно
Antohsa
8 / 12 / 0
Регистрация: 18.10.2016
Сообщений: 115
24.11.2016, 16:44  [ТС]
vxg, спасибо.... у меня (1080х1920) получилось pxPerDp = pxPerSp = 3.0

Но значение sp не совсем корректно себя ведет...

Указываю размер 10sp, но ширина одного символа получатся 17, высота 41. Причем высота почти всегда равна 4*sp, но почему то не 3*sp.

У меня не запускается эмулятор и нет другого Android устройства для теста.

Дорогие форумчане, кто может запустить данную программу и посмотреть, сколько у него получается sp в пикселях, а также ширину и высоту одного символа ("9"). Надо смотреть логи по тегу "OUT".

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/main_activity"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="ru.ant.spsize.MainActivity"
    android:orientation="vertical"
    >
    <Button
        android:text="Button"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/button"
        android:onClick="showWidth"/>
 
    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent">
 
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:id="@+id/main"
            />
 
    </ScrollView>
 
 
</LinearLayout>
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
package ru.ant.spsize;
 
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.TextView;
 
public class MainActivity extends AppCompatActivity {
    LinearLayout main;
    TextView t;
    LinearLayout.LayoutParams lparams;
    final String TAG="OUT";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        main =  (LinearLayout) findViewById(R.id.main);
        lparams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
        for (int i=0; i<=100; i++) {
            t = new TextView(this);
            t.setTextSize(i);
            t.setText("0");
            t.setPadding(0,0,0,0);
            t.setLayoutParams(lparams);
            main.addView(t);
        }
    }
    public void showWidth(View view) {
        int w,h;
        for (int i=0; i<main.getChildCount(); i++) {
            w = main.getChildAt(i).getWidth();
            h = main.getChildAt(i).getHeight();
            ((TextView) main.getChildAt(i)).append(" w = "+Integer.toString(w)+" h = "+ Integer.toString(h) + " sp= " + Integer.toString(i));
            Log.d(TAG, "w="+Integer.toString(w)+" h="+ Integer.toString(h) + " sp=" + Integer.toString(i));
        }
        DisplayMetrics metrics = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(metrics);
        float ws = metrics.widthPixels;
        float hs = metrics.heightPixels;
        float pxPerDp = metrics.density;
        float pxPerSp = metrics.scaledDensity;
        Log.d(TAG, Float.toString(pxPerSp)+" = " + Float.toString(pxPerDp));
    }
}
Заранее, большое спасибо...
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru